a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 53|回复: 0

[综合] OracleRMAN快速入门指南:简单循环语句

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
对于简单的查询语句,可以分为四种情况。1 n$ [& c  n1 G3 B& h* x
   
/ L1 P: m  o! `0 H& r# B* c/ }    1.从本地表中读取数据,并引用本地序列。
2 R, V6 k! M& [5 Y; c0 X; ^   
, P( B" X9 D9 D7 l' Y5 r    SQL> select seq_on_test4.nextval from test_on_test4;7 Y( q0 Y& V( m( K
    " L* F1 q- m0 ~' f
    NEXTVAL
) L+ m: `4 _2 B: d% R: Q   
$ P3 N# c( q" o" N& l6 P    ----------/ B9 Q1 X; U# v7 M! M
   
! ^* E& I# w( N    11 w# T5 D6 k* k" z! p
   
! h  D1 r) k, @  r    2.从本地表中读取数据,但访问远端序列,这时,需要在序列后面加上数据库链名称。
2 Q. R5 [  {+ P$ E" x   
* \) x2 @. F3 g    SQL> select seq_on_yangtk.nextval@yangtk from test_on_test4;
# U5 |7 N$ t  J& K    4 `# |4 W/ B* s* M2 x
    NEXTVAL
5 u5 T5 p% M3 a9 z3 x* O    " {# M3 L& r9 F4 M: i' ~& d2 V* N5 {
    ----------
8 w+ ]* N( M: H, x# J! a+ {   
, J5 `, X6 }* r- n1 Y+ Q- }    1
" o" ^- y& B, A( B7 Y    4 s' a% N( `; G( Z1 F: N) @% `
    3.读取远端数据表中数据,同时访问远端序列。
+ N8 F: }4 {" j   
  d1 z) ^9 `3 M; @' j    SQL> select seq_on_yangtk.nextval@yangtk from test_on_yangtk@yangtk;/ I4 ?# G& k' y! C, s
   
& t9 @3 r9 `$ b3 ^. I    NEXTVAL' L, ^1 P+ U4 E" d  O* o5 p; n: n
    % t7 M0 F$ W4 A, s: G
    ----------8 P  e% W0 L: S  \; t
   
$ ^$ P# R$ x# w6 y$ ?    28 e% ~3 C. C; I! z
    ; Y7 }0 G) Q8 N/ C0 A. C" o, D8 [
    4.读取远端数据表中数据,但是访问本地序列。- m* ]* b7 P. l8 U( v- a3 h8 l3 K8 I( G
   
& Z: E# _9 s1 h2 O    SQL> select seq_on_test4.nextval from test_on_yangtk@yangtk;2 w6 T, Q" Y" ]4 o
   
$ ~6 @4 a" C" v, Z    NEXTVAL  I8 p  \  [7 u- t# |
   
! v; M0 C" V, o* E2 o    ----------* b) b% r8 g$ N" h
    4 G- ?3 |. r; ~" Y- z3 r, q% V
    2
: z5 G: s, n% c; M$ ~    : f" O8 l1 z. _5 o( W
    通过测试,这四种情况工作都很正常。5 m$ U7 [& B# g) k7 g' e
    ! s: E4 B% _2 Q; d! T# l
    下面,考虑分布式事务--以INSERT INTO SELECT为例。
  R7 T0 C, X7 _! {7 y6 d   
4 Q2 W! h# I% ~) e- N    由于INSERT的表可以是本地表,也可以是远端表,对于每种情况,对应的子查询语句都可能包含上面四种情况,下面就一一进行分析。' B5 b/ Y$ R  j8 A) E# C
    - L& O+ K  z0 v* E
    一、插入本地表
9 Z$ u9 D- [' l! `: R' k+ ]    . b: s; y- x* g- c0 V6 K+ ]- i
    1.从本地表中读取数据,并引用本地序列
1 d. H& m" d, F0 g- _   
0 L' w7 a3 l: a. {# ^! y    SQL> insert into test_on_test4 select seq_on_test4.nextval from test_on_test4;; F3 A! n' H6 Z+ f+ O* h8 `! W2 y
    , J+ X( v. P2 m4 s" [
    已创建 1 行。4 \; d8 Z* P: ~9 `" W2 N% z- M
    5 R+ o/ k3 x4 |
    SQL> rollback;8 U9 V& t, M' H3 \* V2 U$ ~1 p! b
   
9 T1 _. V( j) Y0 W    回退已完成。
! L9 t1 U0 ]! q2 E   
1 I  p" I7 H! w2 i4 r$ m    2.从本地表中读取数据,但访问远端序列# X4 {. u% T' ?) _. z. K# K) ]" p( U  m
   
* i5 z1 s4 u* C  ]0 `    SQL> insert into test_on_test4 select seq_on_yangtk.nextval@yangtk from test_on_test4;% i) _9 e+ h# j& L7 W) [- i) q  T7 P2 b
    9 T8 e+ b: z* E- w- B! D
    已创建 1 行。
5 J' t) H$ ]' @/ K! f   
6 P0 O2 E) d1 V) {+ t) f  f8 G; @    SQL> rollback;
- {) {( j  i5 J& ~    & i6 l3 P5 X7 H- u; T7 C2 I
    回退已完成。) `( ]6 A1 h2 v8 O* ]
   
7 H& a* z% n9 C9 C4 `) H    3.读取远端数据表中数据,同时访问远端序列。
# B+ X0 Q# t; a. H& A: k   
& X7 K# d9 G6 ~8 L/ v6 C9 S    SQL> insert into test_on_test4 select seq_on_yangtk.nextval@yangtk from test_on_yangtk@yangtk;7 f  w8 ]3 }5 j+ V9 x; f* Z+ V, a
   
5 l: b" m" f+ f8 F* O3 v    已创建 1 行。$ w' X( n7 Q' X5 M$ `4 n
   
# B1 p4 z% F* ]    SQL> rollback;% H; d9 p3 M' X, ^5 j
    * z- t/ k: K" y, f* C
    回退已完成。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 15:25 , Processed in 0.180454 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表