在A服务器上的Oracle有一张表。需要通过这个存储过程从服务器B上的Oracle数据库中3张表抽取一些字段插入到A服务器上的那种表中去。本人刚接触Oracle。希望各位高手顺便给说点写Oracle存储过程的注意点!谢谢了!!!

解决方案 »

  1.   

    使用数据库连接SQL>conn user_a/pwd_a;
    SQL>create public database link AB connect by user_b identified by pwd_b;
    SQL>insert into tab_a(clo1,clo2,clo3...) select q.clo1,w.clo2,e.clo3...from tab_q@AB,tab_w@AB,tab_e@AB ;
      

  2.   

    我没有完全写,只是一个提示,在A实例中这样写:
    insert into ta select clo1,clo2...from tb@B;
      

  3.   

    dblink我查了一下。貌似这个方法不行。以为服务器的特殊原因。谢谢你!
      

  4.   

    首先登录A服务器 在A表中创建BDLINK 至A表
    DBLINK 创建语句CREATE DATABASE LINK -别名- CONNECT TO -SID- IDENTIFIED BY "PASSWORD" USING "NAME"
    CREATE OR REPLACE PROCEDURE EXCHAGEDATA
    AS
    BEGIN
        INSERT INTO A服务器的表名(
           ---这里填写B服务器中的三张表数据提取的语句SQL要加DBLINK别名---
          例如:
           SELECT * FROM SCOTT.EMP@-别名-

    END EXCHAGEDATA;
      

  5.   

    两个东西。还是提醒你下。避免你出现问题
    CREATE DATABASE LINK -别名- CONNECT TO -SID- IDENTIFIED BY "PASSWORD" USING "NAME"
    CREATE OR REPLACE PROCEDURE EXCHAGEDATA
    AS
    BEGIN
        INSERT INTO A服务器的表(
           ---这里填写B服务器中的三张表数据提取的语句SQL要加DBLINK别名---
          例如:
           SELECT * FROM SCOTT.EMP@-别名-); --注意点1 要加分号
    commit; --注意点2 要记得提交,不然数据导入不了库中。
    END EXCHAGEDATA;