我有这样的查询:
INSERT INTO TAB_AUTOCRCMTREQUESTS
(RequestOrigin, RequestKey, CommentText) VALUES ('Tracker', 'OPM03865_0', '[Orange.Security.OrangePrincipal]
em[u02650791]okok
it's friday!')
正如预期的那样,由于这个它是星期五!有一个单引号,所以它会丢失逗号错误。
我希望在使用Replace函数插入时删除此单引号。 怎么办呢?
答案 0 :(得分:1)
错误原因是因为单引号。为了纠正它,你不应该删除单引号,而是需要再添加一个,即你需要将它的星期五改为它''插入时的星期五。
If you need to replace it for sure, then try the below code :
insert into Blagh values(REPLACE('it''s friday', '''', ''),12);
答案 1 :(得分:1)
我建议使用Oracle q quote。
示例:
INSERT INTO TAB_AUTOCRCMTREQUESTS (RequestOrigin, RequestKey, CommentText)
VALUES ('Tracker', 'OPM03865_0',
q'{[Orange.Security.OrangePrincipal] em[u02650791]okok it's friday!}')
您可以在此处阅读q quote。
要缩短本文,您将遵循以下格式:q' {your string here}'在哪里" {"表示起始分隔符,"}"表示结束分隔符。 Oracle自动识别"配对"分隔符,例如[],{},()和<&gt ;.如果你想使用其他一些角色作为起始分隔符而且它没有"自然"合作伙伴终止,您必须使用相同的字符作为开始和结束分隔符。
显然你不能用户[]分隔符,因为你的查询中有这个分隔符。我使用{}分隔符来表示。
当然你可以使用双qoute来替换它。您可以省略替换中的最后一个参数,因为它不是强制性的,如果没有它,它会自动删除'字符。
INSERT INTO TAB_AUTOCRCMTREQUESTS (CommentText) VALUES (REPLACE('...it''s friday!', ''''))
答案 2 :(得分:0)
单引号通过将它们加倍来转义
INSERT INTO Blagh VALUES(REPLACE('it''s friday', '''', ''),12);
答案 3 :(得分:0)
你可以试试这个,(抱歉,但我不知道为什么 q' [] 有效)
INSERT INTO TAB_AUTOCRCMTREQUESTS
(RequestOrigin, RequestKey, CommentText) VALUES ('Tracker', 'OPM03865_0', q'[[Orange.Security.OrangePrincipal] em[u02650791]okok it's friday!]')
我刚从这个链接Oracle pl-sql escape character (for a " ' ")获得了q' [] - 这个问题可能是重复的