通过动态传递DB Link调用前置程序

发布于 2024-10-17 16:43:23 字数 120 浏览 2 评论 0原文

如何在调用过程时动态传递数据库链接?

立即执行会起作用还是我们需要使用dbms_sql?

对于 DBMS_SQL,我发现它主要与 curosrs 一起使用:(

有人可以帮助我吗?

How to pass db link dynamically while calling a procedure?

Execute immediate will work or we need to use dbms_sql?

For DBMS_SQL i seen it used mostly with curosrs :(

Can any one help me ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰沐子 2024-10-24 16:43:23

您可以使用立即执行。假设

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 来调用它。

You can use EXECUTE IMMEDIATE. Something like

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;

assuming that your procedure takes two parameters and you want to call it with parameter values 17 and 42.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文