dblink远程调用存储过程

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

经验分享 程序员 微信小程序 职场和发展