比如我有一个PL/SQL存储存储的PL/SQL函数
CREATE OR REPLACE PROCEDURE number(test in NUMBER)
........
// rest of code
是不可能的,我不想运行此执行
execute number(2);
我想与运行
select * from number(2);
是不可能用select语句运行存储的pl/sql脚本来调用函数而不是执行?
比如我有一个PL/SQL存储存储的PL/SQL函数
CREATE OR REPLACE PROCEDURE number(test in NUMBER)
........
// rest of code
是不可能的,我不想运行此执行
execute number(2);
我想与运行
select * from number(2);
是不可能用select语句运行存储的pl/sql脚本来调用函数而不是执行?
您不能从SQL执行PROCEDURE;但是,您可以可以从SQL执行功能。
首先,重新定义数字作为一个函数:
CREATE OR REPLACE FUNCTION NUMBER(pTest IN NUMBER) RETURN NUMBER IS
someValue NUMBER := pTest * 100;
BEGIN
-- whatever
RETURN someValue;
END;
然后从SELECT语句执行它
SELECT NUMBER(2) FROM DUAL;
分享和享受。
只是问。如果我没有退货条款。我可以从SELECT语句执行它吗? – user3664490
我不确定如果你有一个没有RETURN语句的函数,PL/SQL会做什么。我相信它会发出编译时警告,但请尝试一下。 –
@ user36 - 其他数据库,是的,但不是Oracle – Hambone
如果你想从数字中得到输出,那么1)数字必须被定义为一个函数,2)而不是使用select语句,你应该简单地使用一个赋值,如'x:= number(2 );'。 –
@josephB 这只是一个带参数的例子。 但我想使用存储的PL/SQL作为我想要的问题。然后使用select输出它 – user3664490
您不能使用SELECT语句从存储过程中进行选择。请参考http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm –