2011-05-14 28 views
4

简单的问题是否可以在问题标题中给出输出函数的别名,以便我可以调用trace('hello')而不是DBMS_OUTPUT.PUT_LINE('hello')?DBMS_OUTPUT.PUT_LINE()的PL/SQL别名?

我想这样做是因为我使用输出来帮助调试,我厌倦了输入整个函数名称和/或始终复制并粘贴它。

谢谢你的时间。

回答

7

只需创建一个程序包呼叫:

create or replace procedure trace(v_message in VARCHAR2) 
as 
begin 
    dbms_output.put_line(v_message); 
end; 

用法:

SQL> begin 
    2 trace('hello'); 
    3 end 
    4 ; 
    5/

PL/SQL procedure successfully completed. 

SQL> set serverout on size 1000000 
SQL>/
hello 

PL/SQL procedure successfully completed. 
+0

非常感谢。我不知道为什么我没有想到这一点! – Griffin 2011-05-14 11:49:48

+1

+1。我经常在PL/SQL块的'DECLARE'部分直接定义一个类似于这个的过程(当我不想要创建一个模式级过程时)。 – 2011-05-14 12:39:56

+0

另一个好处是,您可以在过程中放置​​INSERT语句,以将消息写入日志表。 – Datajam 2011-05-14 12:52:07

2

使用宏来键入你。

我正在使用PLSQL Developer并且每当我想要时dbms_output.put_line我键入ctrl-D。这样我就不必依赖名称较短的函数的存在。它只适用于我正在工作的任何东西。