【发布时间】:2017-10-08 17:04:29
【问题描述】:
Oracle/toad 新手。
我正在定义一个变量并将其值从选择中插入。设置它的值后,我将它用于另一个选择语句。但这给了我错误,并且这个 SELECT 中应该有 INTO 子句
declare maxLineNo number := 0;
BEGIN
select Max(b.Line_No) into maxLineNo FROM Brokerage b WHERE b.External_App_Id = 3720 AND b.Account_Id = '16970' ;
SELECT b.External_App_Id -- this select giving erro
, maxLineNo + 1
, b.Currency
, ''
, CAST( SUM(b.Brokerage_Amt) as VARCHAR2(17))
, ''
, ''
, 1003 -- 1003 for Report summary
, ''
FROM Brokerage b
WHERE b.External_App_Id = 3720
GROUP BY External_App_Id, B.CURRENCY
ORDER BY 2;
DBMS_OUTPUT.PUT_LINE(maxLineNo); -- this is giving value
end;
【问题讨论】:
-
在 PL/SQL 块中,
SELECT仅适用于INTO子句 -
那你有什么建议?如果关闭块,var MaxLineNo 将无法在外部使用。
-
另外,对于空白值,最好写
NULL而不是 ''。 -
由于第二个 SELECT 中缺少 INTO 子句,上述内容甚至无法编译,我感觉您看到的内容与此无关。将您的 DBMS_OUTPUT.PUT_LINE 更改为
DBMS_OUTPUT.PUT_LINE('Test #1: ' || maxLineNo);,看看您会得到什么。祝你好运。