2009-08-24 7 views
0

私は売上テーブルを持っています。私はoracleにiSQL plusを使用しています。これは私が作成しなければならないテストデータです。 は、私がデータを生成するために、次のスクリプトを実行します。エラーORA-06550 ORA-00933

begin 
insert into sales 
select sale_id_seq.nextval, 
     sysdate, 
     trunc(dbms_random.value(000,999)), 
     p.prod_id, c.cust_id 
     FROM dba_xy.product p, dba_xy.customer c, 
     desp_id_seq.nextval, 
      trunc(dbms_random.value(0000,9999)); 

終わりを。 /

しかし、私はやるとき、次のエラーメッセージが表示されます:行9で

trunc(dbms_random.value(0000,9999)); 
       * 

ERROR: ORA-06550:行9、列21: PL/SQL:ORA-00933:SQLをコマンドが正しく終了していません。 ORA-06550:2行目、2列目: PL/SQL:SQL文が無視されました。

どうしたのですか?

DESP_IDがsalesテーブル内の外部キーであることがわかりましたが、現在はdespatchテーブルが空です。どちらのテーブルにもデータを挿入しようとすると、1つのテーブルにデータが必要になりますもう一つのテーブル。私は、このエラーメッセージになってしまう:あなたが選択することはできません

PL/SQL: ORA-02289: sequence does not exist 
+0

[ora-00933:SQLコマンドが正しく終了していません](http://stackoverflow.com/questions/1319992/ora-00933sql-command-not-properly-ended) –

+0

これは[http ://stackoverflow.com/questions/1319992/ora-00933sql-command-not-properly-ended](http://stackoverflow.com/questions/1319992/ora-00933sql-command-not-properly-ended)いいえ? –

答えて

0

をFROM

FROM dba_xy.product p, dba_xy.customer c, 
    desp_id_seq.nextval, 
     trunc(dbms_random.value(0000,9999)); 

試してみてください。ところで

insert into sales 
(select 
    sale_id_seq.nextval, 
    sysdate, 
    trunc(dbms_random.value(000,999)), 
    p.prod_id, 
    c.cust_id, 
    desp_id_seq.nextval, 
    trunc(dbms_random.value(0000,9999)) 
    FROM dba_xy.product p, dba_xy.customer c; 

、あなたはここで、おそらくいくつかのデカルト積を望んでいることを確信しています参加は欠席ですか?

+0

デカルト?うーん、それはどういう意味ですか? –

+0

これは、クロス結合またはデカルト結合です。ここをクリックしてください:http://en.wikipedia.org/wiki/Join_(SQL)#Cross_join –

+0

外部キーの1つにまだデータがロードされていないときに、テーブルにデータをロードする方法を教えてください。 –

関連する問題