当前位置: 首页 > 编程笔记 >

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

梅飞龙
2023-03-14
本文向大家介绍oracle插入字符串数据时字符串中有'单引号问题,包括了oracle插入字符串数据时字符串中有'单引号问题的使用技巧和注意事项,需要的朋友参考一下

使用insert into(field1,field2...) values('val1','val2'...)时,若值中有单引号时会报错。

处理方法:判断一下val1,val2中是否含有单引号,若含单引号,则将单引号'替换成两个单引号''。

将字段与字段值组织到一个HashTable中,再抽象出一个组织sql语句的函数getSqlByHashTable():

HashTable ht =new HashTable();
ht.add(field1,val1);
ht.add(field2,val2); 
ht.add(field3,val3);
 。。。
public string getSqlByHashTable(string tablename,HashTable ht){
   StringBuilder sb=new StringBuilder();
  sb.append("insert into "+tablename+"(");
  StringBuilder fsb=new StringBuilder();
  StringBuilder vsb=new StringBuilder();
  foreach(var key in ht.Keys)
  {
    fsb.append(key+",");
    string value=ht[key];
    if(value.trim()=="")
    {
      value="";
    }
    else
    {
      if(value.Contains("'"))
      {
        value=value.replace("'","''");
      }
      value="'"+value+"'";
    }
    vsb.append(value+",");
  }
  sb.append(fsb.toString().Substring(0,fsb.toString().length-1));
  sb.append(") values(");
  sb.append(vsb.toString().Substring(0,vsb.toString().length-1));
  sb.append(")");
  return sb.toString();
}

以上所述是小编给大家介绍的oracle插入字符串数据时字符串中有'单引号问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍groovy 单引号字符串,包括了groovy 单引号字符串的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 嘿,我用oracle DB和Iron Python一起使用,但我在使用包含字符“‘”的字符串时遇到了麻烦,就像Mc'Donalds中一样。(我知道它在寻找结尾')从用户输入中接受字符串,我想按原样将其添加到我的数据库中,这意味着不省略或更改任何字符。我怎么做?

  • 本文向大家介绍groovy 双引号字符串(插值),包括了groovy 双引号字符串(插值)的使用技巧和注意事项,需要的朋友参考一下 示例 默认情况下会急切解析该参数,这意味着适用: 为了在每次使用字符串时延迟加载参数,可以这样做:            

  • 我可以将替换为其他一些字符序列(例如)来执行字符串替换,但是如果我可以用正则表达式来替换,这将更加清楚。

  • 我有一个StringBuffer类型的变量,它有null字符,即“\0”中间体。我可以用null字符正确打印变量。但是当我试图在Oracle表中插入这个变量时,我不能插入整个StringBuffer变量;只有“\0”之前的部分。我插入这个变量的列的数据类型为varchar2(50)。我不知道为什么会这样。可能是oracle不允许字符串带有null术语字符中间体。我知道一旦在字符串中遇到“\0”,它

  • 问题内容: 我有这个: JSONLint表示这是完全有效的json。但是执行时出现错误。 但是,如果我将代码更改为: (请注意双反斜杠) 它可以工作,但是现在JSONLint表示。 有人可以帮助您了解这种行为吗? 问题答案: 有线格式和您必须在代码中编写的格式之间是有区别的。当您在代码中声明此代码时,您需要在文字中使用双-\,以便字符串获得一个反斜杠(否则,它将\\解释为一个转义序列,仅声明一个“