Oracle中要查询或新增的字符串中含有单引号的处理
oracle字符串使用单引号引起来的,所以如果要插入的或者是查询的数据中含有单引号就需要转义才可以
正常工作,下面含有写出的是两种转义方式:
- 最简单的一种方式就是在需要转义的单引号前面再加上一个单引号。
INSERT INTO TEST_TABLE(MONTHFUND_ID, SUBMIT_PERSON) VALUES ('000101', 'to_date(submit_date, ''yyyy-MM'')');
在上面的一条sql语句中想要添加到字段SUBMIT_PERSON中的值是to_date(submit_date, ‘yyyy-MM’),该值就是含有单引号的,可以在单引号的地方再加上一个单引号即可。
- 第二种方式是在含有单引号的字符串前面以q或Q开头,后面是字符串的内容(该字符串可以包含单引号),不过需要遵守一定的格式,也就是该字符串是需要包含在[、<、(、{之间,前面四中是左侧的,右侧的与其对应即可。比如上面使用两个单引号新增数据的例子按照第二种方式来写就是:
INSERT INTO TEST_TABLE(MONTHFUND_ID, SUBMIT_PERSON) VALUES ('000102', Q'[to_date(submit_date, 'yyyy-MM')]');
INSERT INTO TEST_TABLE(MONTHFUND_ID, SUBMIT_PERSON) VALUES ('000103', Q'<to_date(submit_date, 'yyyy-MM')>');
INSERT INTO TEST_TABLE(MONTHFUND_ID, SUBMIT_PERSON) VALUES ('000104', Q'(to_date(submit_date, 'yyyy-MM'))');
INSERT INTO TEST_TABLE(MONTHFUND_ID, SUBMIT_PERSON) VALUES ('000105', Q'{to_date(submit_date, 'yyyy-MM')}');
对于查询也是使用同样的方法。