缺少表达式Oracle Query

时间:2016-03-30 05:28:38

标签: sql oracle

我有一个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。

1 个答案:

答案 0 :(得分:2)

试试这个:

EXECUTE IMMEDIATE 'UPDATE TBL_NEWS_TYPE
                   SET FULLNAME='''|| newsName
                   ||''' WHERE ID = (SELECT MAX(ID) FROM TBL_NEWS_TYPE)'

我认为你有两个问题:

1)你错过了'('在选择的开头

2)我认为,如果没有使用引号标记包装newsName,它就不会起作用,因为它是一个字符串。