我有以下代碼: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