2016-11-22 97 views
0

我正在通过CALL语句的Oracle文档。这里指出,可以使用CALL语句通过使用INTO(不是包内的函数)来调用用户定义的函数。我尝试了很多组合,但似乎无法获得正确的组合。有人可以举例说明如何做到这一点?谢谢。如何使用'CALL'语句调用用户定义的函数?

编辑:

我试过下面的例子在SQL Developer中,但我得到一个错误。

variable x number; 
call f(10) into :x; 

我得到第2行一声巨响和错误:

SQL Error: ORA-01008: not all variables bound<br> 
01008. 00000 - "not all variables bound" 
+0

请张贴什么你试过了,你遇到的问题是这样的人们可以帮助你编辑你的代码 – Aleksej

+0

'SELECT function_name(paramters)'这应该工作。 – Viki888

+0

我有一个场景,其中一个函数执行DML,所以我正在寻找其他方式来执行它。 – victor

回答

1

Oracle documentation

VARIABLE x VARCHAR2(25); 

CALL warehouse_typ(456, 'Warehouse 456', 2236).ret_name() 
    INTO :x; 

又如:

create function f(n number) return number is 
begin 
    return n * 2; 
end; 

SQL> variable x number; 
SQL> call f(10) into :x; 

Call completed. 

SQL> print x; 

     X 
---------- 
     20 
+0

值得注意的是,如果一个函数没有参数的调用是成功的空括号是必需的:'调用f1()到:var' –

+0

我试图在SQL开发中运行你的例子,但无济于事。我得到这个错误: SQL错误:ORA-01008:未绑定所有的变量 01008. 00000 - “未绑定的所有变量” 运行 变量x号码时 ; 调用f(10)到:x; 它也显示了第2行的语法错误。 谢谢! – victor

相关问题