ошибка ORA-06550 ORA-00933 - PullRequest
       26

ошибка ORA-06550 ORA-00933

0 голосов
/ 24 августа 2009

У меня есть таблица продаж:

    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) 

Я пытаюсь вставить случайно сгенерированные данные в таблицу продаж. Я использую iSQL плюс для оракула. Это просто тестовые данные, которые я должен создать. Я запускаю следующий скрипт для генерации данных:

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 является внешним ключом в таблице продаж, но в настоящее время таблица отправки пуста, и когда я пытаюсь вставить данные в любую из таблиц, я не могу заставить одну таблицу получать данные из другой стол. Я получаю это сообщение об ошибке:

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

1 Ответ

0 голосов
/ 24 августа 2009

Вы не можете выбрать ОТ

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;

Кстати, вы уверены, что хотите здесь декартово произведение, может быть, какое-то соединение пропущено?

...