我正在使用Oracle 10g并且需要在SELECT的where子句中使用变量; 例如.
DECLARE
v_blah NUMBER;
BEGIN
v_blah := 13;
SELECT * FROM PEOPLE p WHERE p.LuckyNumber = v_blah;
END;
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误说
PLS-00428:此SELECT语句中需要一个INTO子句
它似乎在DELETE或INSERT语句中正常工作,所以我不确定为什么它在这里不起作用.
正确的语法是:
DECLARE
v_blah NUMBER := 13;
v_people_rec PEOPLE%ROWTYPE;
BEGIN
SELECT * INTO v_people_rec FROM PEOPLE p WHERE p.LuckyNumber = v_blah;
END;
Run Code Online (Sandbox Code Playgroud)
PL/SQL 中的select 语句需要一个存放查询结果的地方。在这个例子中,位置是v_people_rec可变的。
上面的例子期望只返回一行。在其他情况下,它会抛出异常NO_DATA_FOUND或TOO_MANY_ROWS.
| 归档时间: |
|
| 查看次数: |
16311 次 |
| 最近记录: |