如何在表的NUMBER列中插入null

时间:2017-04-17 13:22:14

标签: oracle

我的存储过程中有以下声明

QUERY := 'UPDATE EMPLOYEE set MGRID=' || V_ID ||
         ' WHERE OTHER_ID=''' || V1_ID || ''' and  CODE=''ABC''';

这里V_ID是NUMBER(30)变量,它具有空值,现在我想在MGRID中插入NULL,当我这样做时抛出ORA-00936:缺少表达式。因为它将V_ID视为空白并形成如下所示的SQL

UPDATE EMPLOYEE set MGRID= WHERE OTHER_ID....

请告诉我如何在MGRID中插入null。

2 个答案:

答案 0 :(得分:1)

在这种情况下你可能会使用 QUERY := 'UPDATE EMPLOYEE set MGRID=' || nvl(to_char(V_ID),'NULL') || ' WHERE OTHER_ID=''' || V1_ID || ''' and CODE=''ABC'''; ......

sql injection

在任何情况下,都应该注意这种陈述,因为它们容易@{ var content = System.Net.WebUtility.HtmlDecode(Model.Content); var replacedContent = content.Replace("<script>", "&lt;script&gt;") .Replace("</script>", "&lt;/script&gt;"); } @Html.Raw(replacedContent) ......

答案 1 :(得分:0)

使用变量绑定来避免每次查询编译:

`execute immediate
         'Update employee set MGRID = :V_ID where OTHERE_ID = :V1_ID and CODE = ''ABC'''
         using V_ID, V1ID;`