我有以下SQL用于更新现有表中的CSS,
SET DEFINE OFF;
UPDATE SCHEMANAME.template
SET body = q'[
<style type="text/css">
#header {
background-color:#004F5D;
height:100px;
position:relative;
}]'
WHERE name = 'CSS';
模板表具有以下结构,
NAME NOT NULL VARCHAR2(150)
SUBJECT NOT NULL VARCHAR2(4000)
BODY NOT NULL CLOB
VERSION NUMBER(18)
但是,当我使用sqlplus运行update语句时,
ERROR:
ORA-01756: quoted string not properly terminated
SQL> SP2-0734: unknown command beginning "height:100..." - rest of line ignored.
SQL> SP2-0734: unknown command beginning "position:r..." - rest of line ignored.
SQL> SP2-0042: unknown command "}]'" - rest of line ignored.
我正在使用,
SQL*Plus: Release 11.2.0.4.0 Production
和Oracle,
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
在我看来,sqlplus对标题块内第一个声明结尾处的分号字符感到不安。
我试过发布,
SET ESCAPE OFF
在运行更新语句之前,问题仍然存在。
我可以通过将UPDATE包装在BEGIN-END块中来解决这个问题。 这是使这项工作的唯一方法吗?
引用运算符是否与';'有问题在街区内?
答案 0 :(得分:0)
它似乎将您的更新声明分为4个部分 -
UPDATE SCHEMANAME.template
SET body = q'[
<style type="text/css">
#header {
background-color:#004F5D;
height:100px;
position:relative;
}]'
你可以试试下面的查询
update SCHEMANAME.template
SET body = '"'||chr(13)||'<style type="text/css">'||chr(13)|| '#header {'||chr(13)|| 'background-color:#004F5D;'||chr(13)|| 'height:100px;'||chr(13)|| 'position:relative;'||chr(13)|| '}"'
WHERE name = 'CSS';
而不是引用,我使用chr(13) - 换行。