跟踪你的asp程序,把sql语句copy出来,然后paste到sql plus中去执行,是一种常用的办法。你的语句很明显是不对的,日期类型不能这么插入,要把语句改成:
INSERT INTO tmp001 (a, b, c, d, e)
VALUES (1, 'A', TO_DATE ('2001/05/19', 'yyyy/mm/dd'), 1, 'A');
如果要插入空值,可以用null来表示,如:
INSERT INTO tmp002_I(A,B,C,D,E) VALUES(null,'A',...); --这句同样有日期转换的问题第三个问题你是对的。

解决方案 »

  1.   

    CREATE TABLE tmp001 (
    A NUMBER,
    B VARCHAR2(6),
    C DATE,
    D NUMBER,
    E VARCHAR2(8),这里要什么逗号
    )
      

  2.   

    SQL> create table bb (a char(1),b char(1))
      2  /表已创建。
    SQL> insert into bb values(null,'1')
      2  /已创建 1 行。
    SQL> select * from bb
      2  /A B
    - -
      1
      

  3.   

    CREATE TABLE tmp001 (
    A NUMBER,
    B VARCHAR2(6),
    C DATE,
    D NUMBER,
    E VARCHAR2(8),
    )
    a>>E VARCHAR2(8), 不能加","
                    ~~
    a>>INSERT INTO tmp001(A,B,C,D,E) VALUES(1,'A',to_date('2001-05-19','YYYY-MM-DD'),1,'A');a>>想A为空 INSERT INTO tmp002_I(B,C,D,E) VALUES('A',2001/05/19,1,'A');  就可以了。a>>"INSERT INTO tmp001(A,B,C,D,E) SELECT tmp002.A,…… FROM  tmp002 WHERE 条件;"   按顺序,字段的数据类型、precision(精度)相对应。
      

  4.   

    CREATE TABLE tmp001 (
    A NUMBER,
    B VARCHAR2(6),
    C DATE,
    D NUMBER,
    E VARCHAR2(8),
    )
    a>>E VARCHAR2(8), 不能加","
                    ~~
    a>>INSERT INTO tmp001(A,B,C,D,E) VALUES(1,'A',to_date('2001-05-19','YYYY-MM-DD'),1,'A');a>>想A为空 INSERT INTO tmp002_I(B,C,D,E) VALUES('A',to_date('2001-05-19','YYYY-MM-DD'),1,'A');  就可以了。a>>"INSERT INTO tmp001(A,B,C,D,E) SELECT tmp002.A,…… FROM  tmp002 WHERE 条件;"   按顺序,字段的数据类型、precision(精度)相对应。
      

  5.   

    TO KingSunSha
    我是在用第3中方法 也就是你说正确的那种方法插数据的
    因为我在 INSERT INTO tmp001(A,B,C,D,E) SELECT tmp002.A,…… FROM  tmp002 WHERE 条件 中 选出来的tmp002 字段中的 C 本身是 DATE 类型的 应该不要再转换了把 可是我插入时还是 ORA-00917: missing comma 错误 我仔细检查了 没发现少
    逗号啊 请问这个抱错是不是一定是丢失了逗号或是还有别的原因呢 
    我是在ASP中把代码拷到PL/SQL中执行的 
    TO cdp128
    不好意思 那个逗号是我不小心多打的 原代码上应该是没有的
      

  6.   

    你把出错的完整代码贴出来,从sqlplus中直接copy
      

  7.   

    如果你的asp脚本是这样写的:
    Datacomm.CommandText = "INSERT INTO Table (field1, field2, field3) VALUES " & _                          "(" & String1 & "," & String2 & "," & String3 & ",0);"   
    那么你应该改成这样:
    Datacomm.CommandText = "INSERT INTO Table (field1, field2, field3) VALUES " & _                          "('" & String1 & "','" & String2 & "','" & String3 & "',0); 要注意asp中的单引号和数据库中的单引号不能混淆。
      

  8.   

    把sql语句copy出来,然后paste到sql plus中去执行,
    建议用 Response.Write "SQL=" & SQL 
           Response.End
    调试
    INSERT INTO tmp001(A,B,C,D,E) SELECT tmp002.A,…… FROM  tmp002 WHERE 条件;"   按顺序,字段的数据类型、precision(精度)相对应。或是我想 INSERT INTO tmp001(A,B,C,D,E) SELECT tmp002.A,…… FROM  tmp002 WHERE 条件 
    这样可以插入tmp002的所有满足条件的内容这样是可以的