你建库时没有报错?
如果这样你可以打开数据窗对象,看看那个有数据类型有问题。在数据库迁移中有很多问题都会出现,有时将字符型的字段转成LONG最恨人。自细地查一下程序中的数据窗口对象,和原各数据类型不合的都要改回来。

解决方案 »

  1.   

    我是在两个库中用语句分别建表的,所以不存在数据类型问题,建表语句如下:
    create table ZX_ZYQLXX ( DLDM varchar2(8) not null,
                              QLMC varchar2(20) not null,
      QLQC number(6,2),
      JK   number(6,2),
      KS   number(2,0),
              KJ   varchar2(60),
      QLBG number(4,1),
      zz   varchar2(20),
      SFTH varchar2(2),
      JZND date,
      JGXS varchar2(8),
      primary key(DLDM,QLMC) );
    所有的number类型字段,如果是在8。05的数据库下执行程序,则没有问题。如果是在8。16的数据库下执行程序,则所有的有小数的字段输入整数没问题,输入小数保存时就报“oracle 不认识的数据类型”?????录入程序为同一vb程序,增加记录使用ado的addnew方法。
      

  2.   

    将错误的addnew语句贴出来,一般不是数据库的问题
      

  3.   

    我发现问题出在ado的addnew上,直接用insert语句插入记录没问题的,看来得到vb板块问了。
      

  4.   

    rsora.Open TableName, cnora, adOpenKeyset, adLockPessimistic
    rsora.AddNew
        
         For i = 0 To fieldcount
            If i = 7 Then
                rsora(fieldname(i)) = IIf(Trim(Text1(i)) = "", Null, Format(Trim(Text1(i)), "yyyy-mm-dd"))
            Else
                Debug.Print Text1(i)
                rsora(fieldname(i)) = IIf(Trim(Text1(i)) = "", 0, Trim(Text1(i).Text))
            End If
         Next
         rsora.Update
         rsora.Close其中fieldname为一数组,内容为字段名,Text1为一文本框控件组。
    我发现问题在ado的addnew上,直接用insert语句插入记录时小数没问题的。
    另:错误是ora-01722:无效数字。
      

  5.   

    不是不是,早试过了,最小化的输入,除了主键外只输入一个number型的字段,有一小数就报错,唉!!!
      

  6.   

    在String转化Number时,数据类型转化有问题,请仔细检查你的程序!
      

  7.   

    应该是程序的问题,你检查数据库中能否手工或使用SQL语句插入小数再看。