DECLARE
NUMBEROFITEMS NUMBER;
ORDERID NUMBER;
BEGIN
ORDERID := 7;
SUNIL.PROCEDURE_WITH_OUT_PARAMETERS(NUMBEROFITEMS, ORDERID);--this increments the orderid by 1
DBMS_OUTPUT.PUT_LINE(NUMBEROFITEMS || ' for orderid ' || (ORDERID + 1));
SELECT (NUMBEROFITEMS || ' for orderid ' || (ORDERID +1)) AS 'Result' FROM DUAL;
END;
我在查询工具或Oracle中运行上述PL / SQL块。当我尝试执行时,它给出了最后一个SELECT,说明在这个SELECT'中需要一个INTO子句。如果我注释掉最后一个SELECT,那么它会毫无错误地执行。 在被调用的过程中,' NumberOfItems'是一个out参数和' OrderID'是参数。
我的问题:上面的PL / SQL块中的最后一个SELECT有什么问题?
答案 0 :(得分:1)
在PL/SQL
块中,必须将select
语句中的选定列分配给变量。
在这种情况下,您可以定义变量
foo VARCHAR(1024);
然后
SELECT (NUMBEROFITEMS || ' for orderid ' || (ORDERID +1)) into foo FROM DUAL;