对数值型字段写 insert into table1 values ('1')合法吗?
我知道应该写成 insert into table1 values (1) 把引号去掉,但是上面的加引号的写法也可以插入成功啊,但不知是否合规矩。
问题的产生是因为我现在用VB写一个程序,一个表里有许多的字段,有的字符型,有的数值型,我想若对数值型加引号的写法也合乎规矩的话,用个循环就很容易拼写INSERT插入语句了,例如
     For i = 0 To 41
         Sql = Sql & Text1(i) & "','"
     Next i
否则的话,写insert 语句很长很长。

解决方案 »

  1.   

    虽然可以,oracle会自动进行数据类型转换,但是不建议这样做insert into table1 values ('1') 无论这个字段是数字还是字符都可以插入成功
    insert into table1 values (1)  这个字段是number型,插入成功,字符型会报错
      

  2.   


    oracle里面会自动隐式转换过去的。
      

  3.   

    会转换,肯定是不合规矩
    因为规矩就是数字不加引号
    字符要加引号
    另外,如果你对数字加引号insert
    那么花的时间就会多一些
      

  4.   

    我平时基本是这样写的,
    因为数字为空时和不为空时都可以这样写,
    否则的话还要加判断,麻烦
    oracle本身会自己转换的,这样写没什么不好
      

  5.   

    合法的,因为oracle会进行转换,但最好别这样写。
      

  6.   

    完全可以,有的时候程序为了减少麻烦,就会无论是number还是varchar2.都加上''。这样拼写sql的时候程序中就不用if..else..
    我的程序也总是这样做。