我的存储过程中有以下声明
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。
答案 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>", "<script>")
.Replace("</script>", "</script>");
}
@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;`