tor*_*one 5 oracle parameters plsql stored-procedures oracle10g
在调用过程时,我需要一个通用方法来获取运行时参数(值)的列表.我需要类似于$$ PLSQL_UNIT的东西,它返回正在运行的过程的名称.(plsql Oracle 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;
/
Run Code Online (Sandbox Code Playgroud)
运行过程产生以下输出:
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.
Run Code Online (Sandbox Code Playgroud)
我不满意,因为我不能复制和粘贴我的所有程序,因为我必须硬编码每个程序来设置他们正确的参数变量.
在此先感谢您的帮助.
无法动态检索传递给 Oracle PL/SQL 中过程的参数值。该语言根本就不是为处理此类操作而设计的。
顺便说一句,在位于包内的过程中,$$PLSQL_UNIT将仅返回包的名称。我发现最好在每个包含过程名称的过程中定义一个名称一致的常量。
| 归档时间: |
|
| 查看次数: |
6921 次 |
| 最近记录: |