Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle10g oracle 10g中包内的调用过程_Oracle10g_Procedure_Overloading - Fatal编程技术网

Oracle10g oracle 10g中包内的调用过程

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

如何调用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
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;
/