Calling preocedure by passing DB Link Dynamically

淺唱寂寞╮ 提交于 2019-12-11 05:26:33

问题


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 ?


回答1:


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.



来源:https://stackoverflow.com/questions/5009277/calling-preocedure-by-passing-db-link-dynamically

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!