日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Oracle:关于分布式数据库(创建数据库链路,创建触发器)

發布時間:2024/9/27 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle:关于分布式数据库(创建数据库链路,创建触发器) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL> host cls

SQL> show user
USER 為 "SCOTT"
SQL> conn / as sysdba
已連接。
SQL> grant create database link to scott;

授權成功。

SQL> conn scott/tiger
已連接。
SQL> --創建數據庫鏈路
SQL> create database link mylink connect to scott identified by tiger using 'remoteorcl';

數據庫鏈接已創建。

SQL> --查詢遠端的數據
SQL> --查詢員工的信息,要求顯示員工號,姓名和部門號
SQL> --假設本地只有部門表,員工表在遠端


SQL> select e.empno,e.ename,d.dname
?? from dept d, emp@mylink e
?? where d.dno=e.dno
SQL> desc dept;
?名稱??????????????????????????????????????????????????????????????????????????????? 是否為空? 類型
?----------------------------------------------------------------------------------- -------- --------------------------------------------------------
?DEPTNO????????????????????????????????????????????????????????????????????????????? NOT NULL NUMBER(2)
?DNAME??????????????????????????????????????????????????????????????????????????????????????? VARCHAR2(14)
?LOC????????????????????????????????????????????????????????????????????????????????????????? VARCHAR2(13)

SQL> ed
已寫入 file afiedt.buf

? 1? select e.empno,e.ename,d.dname
? 2? from dept d, emp@mylink e
? 3* where d.deptno=e.deptno
SQL> /

???? EMPNO ENAME??????????????????????????????????? DNAME????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------------------------------------- --------------???????????????????????????????????????????????????????????????????????????????????
????? 7369 SMITH??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7499 ALLEN??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7521 WARD???????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7566 JONES??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7654 MARTIN?????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7698 BLAKE??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7782 CLARK??????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????
????? 7788 SCOTT??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7839 KING???????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????
????? 7844 TURNER?????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7876 ADAMS??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????

???? EMPNO ENAME??????????????????????????????????? DNAME????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------------------------------------- --------------???????????????????????????????????????????????????????????????????????????????????
????? 7900 JAMES??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7902 FORD???????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7934 MILLER?????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????

已選擇14行。


SQL> create synonym remoteemp for emp@mylink;

同義詞已創建。

SQL> ed
已寫入 file afiedt.buf

? 1* create synonym remoteemp for emp@mylink
SQL>? select e.empno,e.ename,d.dname
? 2?? from dept d, remoteemp e
? 3?? where d.deptno=e.deptno;

???? EMPNO ENAME??????????????????????????????????? DNAME????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------------------------------------- --------------???????????????????????????????????????????????????????????????????????????????????
????? 7369 SMITH??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7499 ALLEN??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7521 WARD???????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7566 JONES??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7654 MARTIN?????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7698 BLAKE??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7782 CLARK??????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????
????? 7788 SCOTT??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7839 KING???????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????
????? 7844 TURNER?????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7876 ADAMS??????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????

???? EMPNO ENAME??????????????????????????????????? DNAME????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------------------------------------- --------------???????????????????????????????????????????????????????????????????????????????????
????? 7900 JAMES??????????????????????????????????? SALES????????????????????????????????????????????????????????????????????????????????????????????
????? 7902 FORD???????????????????????????????????? RESEARCH?????????????????????????????????????????????????????????????????????????????????????????
????? 7934 MILLER?????????????????????????????????? ACCOUNTING???????????????????????????????????????????????????????????????????????????????????????

已選擇14行。

SQL> create or replace trigger syncSalary
? 2? after update on emp
? 3? for each row
? 4? begin
? 5? ?update remoteemp set sal = :new.sal where empno=:new.empno;
? 6????????? commit;
? 7? end;
? 8? /

觸發器已創建

SQL> host cls

SQL> select empno,ename,sal from emp where empno=7839;

???? EMPNO ENAME???????????? SAL?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------- ----------?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 7839 KING???????????? 5000?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

SQL> update emp set sal=sal+100 where empno=7839;
update emp set sal=sal+100 where empno=7839
?????? *
第 1 行出現錯誤:
ORA-02055: 分布式更新操作失效; 要求回退
ORA-04092: COMMIT 不能在觸發器中
ORA-06512: 在 "SCOTT.SYNCSALARY", line 3
ORA-04088: 觸發器 'SCOTT.SYNCSALARY' 執行過程中出錯


SQL> create or replace trigger syncSalary
? 2? after update on emp
? 3? for each row
? 4? begin
? 5? ?update remoteemp set sal = :new.sal where empno=:new.empno;
? 6? end;
? 7? /
create or replace trigger syncSalary
*
第 1 行出現錯誤:
ORA-02067: 要求事務處理或保存點回退


SQL> rollback;

回退已完成。

SQL> create or replace trigger syncSalary
? 2? after update on emp
? 3? for each row
? 4? begin
? 5? ?update remoteemp set sal = :new.sal where empno=:new.empno;
? 6? end;
? 7? /create or replace trigger syncSalary
? 8? after update on emp
? 9? for each row
?10? begin
?11? ?update remoteemp set sal = :new.sal where empno=:new.empno;
?12? end;
?13? /

警告: 創建的觸發器帶有編譯錯誤。

SQL> create or replace trigger syncSalary
? 2? after update on emp
? 3? for each row
? 4? begin
? 5? ?update remoteemp set sal = :new.sal where empno=:new.empno;
? 6? end;
? 7? /

觸發器已創建

SQL> select empno,ename,sal from emp where empno=7839;

???? EMPNO ENAME???????????? SAL?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------- ----------?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 7839 KING???????????? 5000?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

SQL> update emp set sal=sal+100 where empno=7839;

已更新 1 行。

SQL> commit;

提交完成。

SQL> select empno,ename,sal from emp where empno=7839;

???? EMPNO ENAME???????????? SAL?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
---------- ---------- ----------?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 7839 KING???????????? 5100?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

SQL> exit

總結

以上是生活随笔為你收集整理的Oracle:关于分布式数据库(创建数据库链路,创建触发器)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。