dblink远程调用存储过程

转自:https://blog.csdn.net/daxiang12092205/article/details/42871409


  1. -- 在A数据库创建存储过程、表  
  2. CREATE OR REPLACE PROCEDURE A0K_PROC_TEST1(V_YEAR   IN NUMBER,  
  3.                                            V_RESULT OUT NUMBER) AS  
  4. BEGIN  
  5.   INSERT INTO A0K_TEST_0119  
  6.     (TEST_YEAR, TEST_DATE, TEST_PROC)  
  7.   VALUES  
  8.     (V_YEAR, SYSDATE,'A0K_PROC_TEST1');  
  9.   V_RESULT := 1;  
  10.   COMMIT;  
  11. END A0K_PROC_TEST1;  
  12.   
  13. CREATE OR REPLACE PROCEDURE A0K_PROC_TEST2(V_YEAR   IN NUMBER) AS  
  14. BEGIN  
  15.   INSERT INTO A0K_TEST_0119  
  16.     (TEST_YEAR, TEST_DATE, TEST_PROC)  
  17.   VALUES  
  18.     (V_YEAR, SYSDATE,'A0K_PROC_TEST2');  
  19.   COMMIT;  
  20. END A0K_PROC_TEST2;  
  21.   
  22. create table A0K_TEST_0119(  
  23.   test_year number,  
  24.   test_date date,  
  25.   test_proc varchar2(20));  
[sql]  view plain  copy
  1. -- 在B数据库中调用A的存储过程  
  2. -- 本例中‘dblink’为在B库中创建的A库的 BDlink的名称
  3. declare  
  4.   v_res number;  
  5. begin  
  6.   A0K_PROC_TEST1@dblink(2014,v_res);  
  7. end;  
  8.   
  9. declare  
  10.   v_res number;  
  11. begin  
  12.   A0K_PROC_TEST2@dblink(2014);  
  13. end;  
  14.   
  15. select * from  A0K_TEST_0119@dblink p order by p.test_date desc;