команда ртов-00933:SQL, не правильно законченная

Я работаю над полем (v5r4) iSeries DB2, это - специальная разновидность DB2.

, Если Вы идете или соединяющийся с iSeries (AS/400), ссылка, упомянутая Anton, является самой превосходной (извините, еще не может голосовать!)

Описывают, не работает над iSeries, но будет работать с DB2 на других платформах.

5
задан OMG Ponies 25 April 2011 в 15:54
поделиться

2 ответа

Ошибка ORA-00933 связана с неверно отформатированным оператором SELECT:

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; 

... когда это должно быть:

SELECT DESP_ID_SEQ.nextval,
       DBMS_RANDOM.string('U',5),
       TRUNC(DBMS_RANDOM.value(0000,9999)),
       t.prod_id,
       t.prod_name 
  FROM dba_xy.product t; 

Вам не хватало запятой для разделения prod_id и prod_name столбцы, и, кроме того, имели избыточное объявление FROM dba_xy.product в неправильном месте.

При этом таблица dba_xy.despatch должна содержать только prod_id . Если вам нужно предоставить удобочитаемую версию данных, я рекомендую вам создать представление . Пример:

CREATE VIEW despatch_vw AS
SELECT t.prod_id,
       p.prod_name
  FROM dba_xy.despatch t
  JOIN dba_xy.product p ON p.prod_id = t.prod_id
3
ответ дан 15 December 2019 в 06:31
поделиться

Может быть, вы получаете нарушение ограничения уникальности, потому что вы дважды вставляете одни и те же строки? Предполагается, что "i" должно использоваться в предложении where оператора insert, или вы действительно хотите, чтобы строки вставлялись дважды?

В вашем первом операторе есть два предложения FROM, поэтому вы получаете синтаксическую ошибку.

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;    
0
ответ дан 15 December 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: