gpt4 book ai didi

oracle plsql : retrieve runtime parameter values when you call a procedure

转载 作者:行者123 更新时间:2023-12-04 20:49:39 24 4
gpt4 key购买 nike

当我调用一个过程时,我需要一个通用的方法来获取运行时参数(值)的列表。我需要类似于 $$PLSQL_UNIT 的东西,它返回正在运行的过程的名称。
(plsql 甲骨文 10g)

例如。看看这个示例程序:
(它只是打印自己的名称和参数)

CREATE OR REPLACE PROCEDURE  MY_PROC(ow in varchar2, tn IN varchar2)
IS

BEGIN
dbms_output.put_line('proc_name: '||$$PLSQL_UNIT||' parameters: '|| ow||' '||tn );

EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERRORE: ' ||SQLERRM);

END MY_PROC;
/

运行过程产生以下输出:
SQL> 
1 BEGIN
2 IBAD_OWN.MY_PROC('first_par', 'second_par');
3 END;
4 /

proc_name: MY_PROC parameters: first_par second_par

PL/SQL procedure successfully completed.

我不满意,因为我无法复制和粘贴我的所有过程,因为我必须对每个过程进行硬编码以设置其正确的参数变量。

在此先感谢您的帮助。

最佳答案

在 Oracle PL/SQL 中无法动态检索传递给过程的参数值。该语言根本不是为了处理这种操作而设计的。

顺便说一下,在位于包内的过程中,$$PLSQL_UNIT只会返回包的名称。我发现最好在包含过程名称的每个过程中定义一个名称一致的常量。

关于oracle plsql : retrieve runtime parameter values when you call a procedure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262974/

24 4 0