跟踪你的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',...); --这句同样有日期转换的问题第三个问题你是对的。
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',...); --这句同样有日期转换的问题第三个问题你是对的。
A NUMBER,
B VARCHAR2(6),
C DATE,
D NUMBER,
E VARCHAR2(8),这里要什么逗号
)
2 /表已创建。
SQL> insert into bb values(null,'1')
2 /已创建 1 行。
SQL> select * from bb
2 /A B
- -
1
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(精度)相对应。
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(精度)相对应。
我是在用第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
不好意思 那个逗号是我不小心多打的 原代码上应该是没有的
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中的单引号和数据库中的单引号不能混淆。
建议用 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的所有满足条件的内容这样是可以的