Oracle10g oracle 10g中包内的调用过程
如何调用oracle 10g包中的过程。 我有一个称为“区域”的两个过程,其中一个是一个参数,另一个也是“区域”,但有3个参数。简而言之,过程在包“shapearea”中重载 我试过了Oracle10g oracle 10g中包内的调用过程,oracle10g,procedure,overloading,Oracle10g,Procedure,Overloading,如何调用oracle 10g包中的过程。 我有一个称为“区域”的两个过程,其中一个是一个参数,另一个也是“区域”,但有3个参数。简而言之,过程在包“shapearea”中重载 我试过了 execute shapearea.area(5); exec shapearea.area(5); call shapearea.area(5); shapearea.area(5); 但它在oracle 10g中不起作用。如果您使用的是SQL*Plus,请尝试: set serveroutput on Be
execute shapearea.area(5);
exec shapearea.area(5);
call shapearea.area(5);
shapearea.area(5);
但它在oracle 10g中不起作用。如果您使用的是SQL*Plus,请尝试:
set serveroutput on
Begin
shapearea.area(5);
end;
/
如果您使用的是SQL Developer,则需要显示DBMS_输出窗口,并为您使用的连接启用它
实际上不会单独写入显示器。实际上,它只是将输出缓冲到一些内部数据结构,然后在SQL*Plus的情况下,SET SERVEROUTPUT ON
使客户端例程能够检索输出。如果SQL Developer显示DBMS输出窗口并为您使用的连接启用它,则会启用其客户端显示例程
对于其他环境,您可能需要使用
GET_LINE
和/或GET_LINE
以编程方式读取缓冲结果,而无需在oracle 10g中启用serveroutput,否则,您的解决方案是完全正确的。如何在oracle 10g中直接调用包中的过程而不使用pl/sql块。set serveroutput on
语句就是这样,用户的dbms\u输出。将显示put\u line
语句。上次我检查SQL*Plus中的serveroutput时(刚才);^))没有默认设置为on。@TanvirPatel您可以使用exec shapearea.area(5)代码>相反,但这只是匿名pl/sql块的简写。我在oracle 10g database express edition上运行它。在sqlplus上不运行。“它不工作”不是有效的错误消息。它会给出“ORA-00900:invalid sql statement”错误消息。您列出了四行代码,其中没有一行是有效的sql语句-那么您期望得到什么呢?:)我只需要在包中调用这个过程,但我不知道如何在Oracle10g中调用它,所以我尝试了以上4种方法,但都不起作用。但现在我知道,使用PL/SQL块我可以调用包中的过程或函数。
set serveroutput on
Begin
shapearea.area(5);
end;
/