Oracle insert数据时字符串中有‘单引号问题

Posted Bug解决者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle insert数据时字符串中有‘单引号问题相关的知识,希望对你有一定的参考价值。

在我们把Excel表格数据插入表中的时候,常常使用拼接insert 语句的方式;

当excel表格数据遇到单引号的时候,最后得到的insert into如下:

insert into test(id,name,age)values(sys_guid(),'张'','28');

此时得到的SQL执行会报错。

解决方案:
判断一下val1,val2中是否含有单引号,若含单引号,则将单引号’替换成两个单引号’'的格式。

下面提供一个简单的工具类:

    public static String replaceStr(String sourceStr) 
        if (StrUtil.isBlank(sourceStr)) 
            return "";
        
        String substring = sourceStr.substring(1, sourceStr.length() - 1);
        if (substring.contains("'")) 
            String replaceStr = substring.replace("'", "''");
            return "'" + replaceStr + "'";
        
        return sourceStr;
    

最终处理得到的SQL语句如下:

insert into test(id,name,age)values(sys_guid(),'张''三','28');

以上是关于Oracle insert数据时字符串中有‘单引号问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle insert数据时字符串中有‘单引号问题

oracle插入字符串数据时,字符串中有'单引号

SQL2000.特殊insert.要插入包含单引号与逗号的值.请高手解答!

如何向数据库中保存单引号,双引号等字符

sql server 中insert into 语句,数据一律加单引号吗,还是说如是数字,可不加引号.

JavaWeb SQL常用语言(增删改查)