0

私は販売テーブルを持っています:

    Name         Null?      Type  
SALE_ID         NOT NULL  NUMBER(4)  
SALE_DATE                 DATE  
NO_OF_PRODS               NUMBER(4)  
PROD_ID         NOT NULL  NUMBER(4)  
CUST_ID         NOT NULL  NUMBER(4)  
DESP_ID         NOT NULL  NUMBER(4)  
SALE_RECEIPT    NOT NULL  NUMBER(5) 

ランダムに生成されたデータを sales テーブルに挿入しようとしています。オラクルにiSQL plusを使用しています。これは私が作成しなければならない単なるテストデータです。次のスクリプトを実行して、データを生成します。

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));

終わり; /

しかし、そうすると、次のエラーメッセージが表示されます。

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

9 行目のエラー: ORA-06550: 9 行目、21 列目: PL/SQL: ORA-00933: SQL コマンドが正しく終了していません ORA-06550: 2 行目、2 列目: PL/SQL: SQL ステートメントは無視されました。

私は何を間違えましたか?

DESP_ID は sales テーブル内の外部キーであることに気付きましたが、現在、配送テーブルは空であり、いずれかのテーブルにデータを挿入しようとすると、一方のテーブルが他方のテーブルのデータを必要とするようにできません。このエラーメッセージが表示されます:

PL/SQL: ORA-02289: sequence does not exist 
4

1 に答える 1

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;

ところで、ここでデカルト積が必要ですか?

于 2009-08-24T05:27:29.297 に答える