我有以下代码:ORA-00933:SQL命令不能正确地结束
begin
for i in 1..2 loop
insert into dba_xy.despatch
select desp_id_seq.nextval,
dbms_random.string('U',5),
trunc(dbms_random.value(0000,9999)),
prod_id from dba_xy.product
prod_name from dba_xy.product;
end loop;
末;
当运行它时,oracle给我的以下错误消息:
prod_name from dba_xy.product;
*
ERROR位于第8行: ORA-06550:行8,列29: PL/SQL:ORA-00933:SQL命令无法正常结束 ORA-06550:第3行,第2列: PL/SQL:SQL语句忽略
我试图做的是插入到发货表的新数据链接的现存PROD_ID和PROD_NAME。我已将prod_name设置为产品表中的唯一键,并将prod_id设置为主键,并在发送表中将其设置为外键约束。我需要将prod_name包含在发送表中,以使表的读者能够更好地理解prod_name需要被发现的内容等等,而不仅仅是给出prod_id,这对他们根本没有任何意义。但是也许我在考虑在发货表中不需要prod_id。 请帮忙。
从发货表丢弃PROD_ID列后,我改变了我的代码:
begin
for i in 1..2 loop
insert into dba_xy.despatch
select desp_id_seq.nextval,
dbms_random.string('U',5),
trunc(dbms_random.value(0000,9999)),
prod_name from dba_xy.product;
end loop;
末; /
和以下错误消息上来关于唯一约束: ORA-00001:: 位于第1行开始 * ERROR唯一约束(DBA_XY.PROD_NAME_UC)违反 ORA-06512:在3线
我试着运行你的视图代码,它想出了以下错误: join dba_xy。产品p * 错误在第5行: ORA-00905:缺少关键字 – taksIV 2009-08-24 03:23:26
我不好 - 我忘了实际的JOIN标准。立即尝试查看代码。 – 2009-08-24 04:45:46
哈哈,这很好。谢谢。 – taksIV 2009-08-24 05:30:03