Oracle DBLINK 抽数以及…

来源:互联网 发布:玩具机械战警如何编程 编辑:程序博客网 时间:2024/05/29 15:39
DB : 11.2.0.3.0

原库实例orcl:

SQL> select instance_name fromv$instance;

INSTANCE_NAME
----------------
orcl



目标库实例yoon:
SQL> select instance_name fromv$instance;

INSTANCE_NAME
----------------
yoon


创建表空间
SQL> create tablelspace yoondatafile '/u01/app/oracle/oradata/yoon/yoon01.dbf' size100m;


创建用户
SQL> create user yoon identifiedby yoon default tablespace yoon;


授权
SQL> grant dba to yoon;


配置tnsname.ora(一台服务器安装了两个实例,tnsname.ora共用)
[root@db01 admin]# vitnsnames.ora

# tnsnames.ora NetworkConfiguration File:/u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configurationtools.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =db01)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(SERVER = DEDICATED)
)
)

YOON =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =db01)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yoon)
(SERVER = DEDICATED)
)
)


原库实例orcl:
SQL> show user
USER is "SYS"

创建DB_LINK(dblink_yoon):

SQL> create database linkdblink_yoon connect to yoon identified by yoon using'YOON';

Database link created.


dblink_yoon:创建的dblink名
yoon:用户名
yoon:密码
YOON:tnsname.ora中配置的服务名



目标库实例yoon

SQL> conn yoon/yoon
Connected.


SQL> show user
USER is "YOON"


创建测试表:
SQL> create table yoon as select *from scott.emp;

Table created.


SQL> select table_name fromuser_tables;

TABLE_NAME
------------------------------
YOON


原库实例orcl:
SQL> show user
USER is "SYS"

SQL> select * fromyoon.yoon@dblink_yoon;

EMPNO ENAME JOB MGR HIREDATE SALCOMM DEPTNO
---------- ---------- ------------------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 80020
7499 ALLEN SALESMAN 7698 20-FEB-811600 300 30
7521 WARD SALESMAN 7698 22-FEB-811250 500 30
7566 JONES MANAGER 7839 02-APR-812975 20
7654 MARTIN SALESMAN 7698 28-SEP-811250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-812850 30
7782 CLARK MANAGER 7839 09-JUN-812450 10
7788 SCOTT ANALYST 7566 19-APR-873000 20
7839 KING PRESIDENT 17-NOV-81 500010
7844 TURNER SALESMAN 7698 08-SEP-811500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 110020
7900 JAMES CLERK 7698 03-DEC-81 95030
7902 FORD ANALYST 7566 03-DEC-81 300020
7934 MILLER CLERK 7782 23-JAN-82 130010

14 rows selected.


SQL> insert into yoon.yoon@dblink_yoon (empno,ename) values (7777,'KKKK');

1 row created.


SQL> commit;

Commit complete.


SQL> select * from yoon.yoon@dblink_yoon;

EMPNO ENAME JOB MGR HIREDATE SALCOMM DEPTNO
---------- ---------- ------------------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 80020
7499 ALLEN SALESMAN 7698 20-FEB-811600 300 30
7521 WARD SALESMAN 7698 22-FEB-811250 500 30
7566 JONES MANAGER 7839 02-APR-812975 20
7654 MARTIN SALESMAN 7698 28-SEP-811250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-812850 30
7782 CLARK MANAGER 7839 09-JUN-812450 10
7788 SCOTT ANALYST 7566 19-APR-873000 20
7839 KING PRESIDENT 17-NOV-81 500010
7844 TURNER SALESMAN 7698 08-SEP-811500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 110020
7900 JAMES CLERK 7698 03-DEC-81 95030
7902 FORD ANALYST 7566 03-DEC-81 300020
7934 MILLER CLERK 7782 23-JAN-82 130010
7777KKKK

15 rows selected.


SQL> update yoon.yoon@dblink_yoon set empno=9999where empno=7777;

1 row updated.


SQL> commit;

Commit complete.


SQL> select * from yoon.yoon@dblink_yoon;

EMPNO ENAME JOB MGR HIREDATE SALCOMM DEPTNO
---------- ---------- ------------------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 80020
7499 ALLEN SALESMAN 7698 20-FEB-811600 300 30
7521 WARD SALESMAN 7698 22-FEB-811250 500 30
7566 JONES MANAGER 7839 02-APR-812975 20
7654 MARTIN SALESMAN 7698 28-SEP-811250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-812850 30
7782 CLARK MANAGER 7839 09-JUN-812450 10
7788 SCOTT ANALYST 7566 19-APR-873000 20
7839 KING PRESIDENT 17-NOV-81 500010
7844 TURNER SALESMAN 7698 08-SEP-811500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 110020
7900 JAMES CLERK 7698 03-DEC-81 95030
7902 FORD ANALYST 7566 03-DEC-81 300020
7934 MILLER CLERK 7782 23-JAN-82 130010
9999KKKK

15 rows selected.


SQL> delete from yoon.yoon@dblink_yoon where yoon.yoon.empno=9999;

1 row deleted.


SQL> commit;

Commit complete.


SQL> select * from yoon.yoon@dblink_yoon;

EMPNO ENAME JOB MGR HIREDATE SALCOMM DEPTNO
---------- ---------- ------------------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 80020
7499 ALLEN SALESMAN 7698 20-FEB-811600 300 30
7521 WARD SALESMAN 7698 22-FEB-811250 500 30
7566 JONES MANAGER 7839 02-APR-812975 20
7654 MARTIN SALESMAN 7698 28-SEP-811250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-812850 30
7782 CLARK MANAGER 7839 09-JUN-812450 10
7788 SCOTT ANALYST 7566 19-APR-873000 20
7839 KING PRESIDENT 17-NOV-81 500010
7844 TURNER SALESMAN 7698 08-SEP-811500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 110020
7900 JAMES CLERK 7698 03-DEC-81 95030
7902 FORD ANALYST 7566 03-DEC-81 300020
7934 MILLER CLERK 7782 23-JAN-82 130010

14 rows selected.


SQL> alter table yoon.yoon@dblink_yoon rename to yoon.yoonbak;
alter table yoon.yoon@dblink_yoon rename to yoon.yoonbak
*
ERROR at line 1:
ORA-02021: DDL operations are notallowed on a remote database


SQL> drop table yoon.yoon@dblink_yoon;
drop table yoon.yoon@dblink_yoon
*
ERROR at line 1:
ORA-02021: DDL operations are notallowed on a remote database


总结:DBLINK支持DML操作、不支持DDL操作(除了写存储过程)


抽数:
1、先创建好表结构

2、通过insert into抽数
SQL> insert into YOON.YOON_TABLEselect * from SCOTT.EMP@dblink_yoon t;

0 0
原创粉丝点击