我有一段非常简单的SQL,我无法工作...
DECLARE
RESTORE_ID NUMBER;
counts NUMBER;
BEGIN
RESTORE_ID := 100014;
SELECT COUNT(UPDATE_ID) INTO counts FROM TB_ENT WHERE UPDATE_ID = RESTORE_ID;
DBMS_OUTPUT.PUT_LINE(counts);
END;
如果我运行上述命令,则输出为0。
如果我运行时未将RESTORE_ID
变量替换为SELECT行,则:
SELECT COUNT(UPDATE_ID) INTO counts FROM TB_ENT WHERE UPDATE_ID = 100014;
您猜到了,输出为1。为什么?
您应该避免为变量使用列名。这是您的代码被重写以执行此操作。我也喜欢表的别名,因为我觉得它会使带有许多联接的查询更短。
DECLARE
vRESTORE_ID NUMBER;
vcounts NUMBER;
BEGIN
vRESTORE_ID := 100014;
SELECT COUNT(te.UPDATE_ID)
INTO vcounts
FROM TB_ENT te
WHERE te.UPDATE_ID = vRESTORE_ID;
DBMS_OUTPUT.PUT_LINE(vcounts);
END;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句