执行脚本时出错。我尝试用sql server convert(datetime_替换oracle to_date文本 Msg 102,第15级,状态1,第9行 '02'附近的语法不正确。 消息132,第15级,状态1,第9行 标签“ HH24”已经声明。标签名称在查询批处理或存储过程中必须唯一。 消息132,第15级,状态1,第9行 标签“ MI”已被声明。标签名称在查询批处理或存储过程中必须唯一。
在Google中寻找有关替换工作原理的解决方案,找不到有关如何处理标签的解决方案,但我认为这不是可行的。我只是将一个文本替换为另一个。看起来sql server不喜欢oracle时间定义。
update table
set table.clobfield = REPLACE(table.clobfield,'BETWEEN TO_DATE('02/01/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('02/10/2011 23:59:59', 'MM/DD/YYYY HH24:MI:SS')',
'BETWEEN CONVERT(DATETIME, '02/01/2011 00:00:00') AND CONVERT(DATETIME,'02/10/2011 23:59:59')')
我希望sql服务器文本替换oracle to_date文本
答案 0 :(得分:0)
如果要在Oracle DB中执行它,则必须使用Alternative quoting mechanism
来形成包含特殊字符串字符的字符串(在您的情况下,引号('))。
您只需要使用q'##'形成字符串。这样您在字符串中写的任何内容都将被视为原样。
尝试以下操作:
update table
set table.clobfield =
REPLACE(table.clobfield,
q'#BETWEEN TO_DATE('02/01/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('02/10/2011 23:59:59', 'MM/DD/YYYY HH24:MI:SS')#',
q'#BETWEEN CONVERT(DATETIME, '02/01/2011 00:00:00') AND CONVERT(DATETIME,'02/10/2011 23:59:59')#')
干杯!
答案 1 :(得分:0)
您处在正确的轨道上,您只需要转义引号即可。
这是它的外观:
update table set table.clobfield = REPLACE(table.clobfield,'BETWEEN TO_DATE(''02/01/2011 00:00:00'', ''MM/DD/YYYY HH24:MI:SS'') AND TO_DATE(''02/10/2011 23:59:59'', ''MM/DD/YYYY HH24:MI:SS'')',
'BETWEEN CONVERT(DATETIME, ''02/01/2011 00:00:00'') AND CONVERT(DATETIME,''02/10/2011 23:59:59'')')
您必须确保时间完全匹配,否则将不会替换这些值。