我有一个oracle触发器,它返回错误
其他信息:ORA-00936:缺少表达
在我的TOAD中,它显示了以下行。
EXECUTE IMMEDIATE 'UPDATE TBL_NEWS_TYPE SET FULLNAME='|| newsName ||' WHERE ID = SELECT MAX(ID) FROM TBL_NEWS_TYPE)';
在这里 newsName 是varchar2变量,如newsName VARCHAR2(50)/和INTEGER中的ID。
答案 0 :(得分:2)
试试这个:
EXECUTE IMMEDIATE 'UPDATE TBL_NEWS_TYPE
SET FULLNAME='''|| newsName
||''' WHERE ID = (SELECT MAX(ID) FROM TBL_NEWS_TYPE)'
我认为你有两个问题:
1)你错过了'('在选择的开头
2)我认为,如果没有使用引号标记包装newsName,它就不会起作用,因为它是一个字符串。