我想获取特定的列值a.id并将其存储到变量v_id中 . 然后使用此值传递到存储过程 .
DECLARE v_id a.id%TYPE;
BEGIN
SELECT id into v_id from a where a.name='test' and rownum <2 order by id desc;
Print v_id;
doSomething(v_id);
END;
/
我在Oracle SQL Developer中遇到此错误:
错误报告:ORA-06550:第3行,第7列:PLS-00103:当期望以下之一时遇到符号“V_ID”::= . (@%;符号“:=”代替“V_ID”继续.06550 . 00000 - “行%s,列%s:\ n%s”*原因:通常是PL / SQL编译错误 . *操作:
3 回答
如果要使用
rownum
和order by
,则必须在子查询中输入顺序 . 没有其他方法可以保证您获得正确的值 .处理可能没有与您的查询匹配的
id
的可能性也是一种好习惯 . 我添加了一个额外的begin... end;
块来处理这个问题 .正如@raukh所说(虽然我正在写这个!)问题是
print
,应该是dbms_output.put_line()
这个:
无效 . 可能你的意思是:
? (请注意,您可能需要运行
预先为了上述效果 . )
PRINT
isn 't a valid PL/SQL command, so that' s会造成问题 . 也许你想要