2009-08-24 4 views
0

나는 판매 테이블이 있습니다. 오라클에 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가 판매 테이블 내의 외래 키임을 알았지 만 현재는 발송 테이블이 비어 있으며 두 테이블 중 하나에 데이터를 삽입하려고하면 하나의 테이블에 데이터가 필요하지 않습니다. 다른 테이블. 이 오류 메시지가 그만 둘 : 당신은 선택할 수 없습니다

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

시도 : BTW

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

외래 키 중 하나에 아직 데이터가로드되지 않은 상태에서 테이블로 데이터를로드하는 방법은 무엇입니까? –