Oracle Select from dual不工作

时间:2014-09-19 15:12:21

标签: select oracle11g

  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有什么问题?

1 个答案:

答案 0 :(得分:1)

PL/SQL块中,必须将select语句中的选定列分配给变量。

在这种情况下,您可以定义变量

foo VARCHAR(1024);

然后

SELECT (NUMBEROFITEMS || ' for orderid ' || (ORDERID +1)) into foo FROM DUAL;