好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

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插入字符串数据时字符串中有'单引号问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对服务器之家网站的支持!

查看更多关于oracle插入字符串数据时字符串中有单引号问题的详细内容...

  阅读:47次