通过动态传递DBLink来调用过程

时间:2011-02-15 20:44:02

标签: oracle dynamic-sql

如何在调用过程时动态传递db链接?

执行立即可行还是需要使用dbms_sql?

对于DBMS_SQL,我看到它主要用于curosrs :(

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用EXECUTE IMMEDIATE。像

这样的东西
DECLARE
  l_dblink_name VARCHAR2(30) := 'YourDBLink';
  l_sql_stmt    VARCHAR2(1000);
BEGIN
  l_sql_stmt := 'BEGIN procedure_name@' || l_dblink_name || ' (:1, :2); END;';
  EXECUTE IMMEDIATE l_sql_stmt
    USING 17, 42;
END;

假设您的过程采用两个参数,并且您希望使用参数值17和42调用它。