2016-09-24 2 views
0

Когда я запускаю этот запрос, он говорит, что запятая отсутствует. Пожалуйста, проверьте это. Это мой запрос.Когда я запускаю этот запрос, он говорит, что запятая отсутствует.?

INSERT 
    INTO 
     VI_STAT_APP 
     (STAT_TYPE_ROWID,STAT_REASON_ROWID,STAT_APP_ROWID="3815226") 
    VALUES 
     ((SELECT 
      stat_reason.STAT_TYPE_ROWID 
     from 
      VI_STAT_TYPE stat_type 
     inner join 
      VI_STAT_GRP stat_grp 
       on stat_type.STAT_GRP_ROWID=stat_grp.STAT_GRP_ROWID 
     left outer join 
      VI_STAT_REASON stat_reason 
       on stat_reason.STAT_TYPE_ROWID=stat_type.STAT_TYPE_ROWID 
     where 
      stat_grp.STAT_GRP_NAME="DNB STATUS VALUES - AGMNT"),(SELECT 
      stat_reason.STAT_REASON_ROWID 
     from 
      VI_STAT_TYPE stat_type 
     inner join 
      VI_STAT_GRP stat_grp 
       on stat_type.STAT_GRP_ROWID=stat_grp.STAT_GRP_ROWID 
     left outer join 
      VI_STAT_REASON stat_reason 
       on stat_reason.STAT_TYPE_ROWID=stat_type.STAT_TYPE_ROWID 
     where 
      stat_grp.STAT_GRP_NAME="DNB STATUS VALUES - AGMNT")); 

Спасибо заранее.

+0

Произошла ли ошибка в том, какая часть запроса имела ошибку? – kkaosninja

+0

'STAT_APP_ROWID =" 3815226 "' ... это выглядит неправильно, так как вы пытаетесь указать значение в разделе имени столбца. –

ответ

0

Это выглядит неправильно меня:

STAT_APP_ROWID="3815226" 

Список имен столбцов сразу после INSERT INTO предназначен именно для имен столбцов, а не значений. Если вы хотите жестко закодировать значение для вставки в START_APP_ROWID колонки, а затем перенести его в раздел VALUES, например:

INSERT INTO VI_STAT_APP 
    (STAT_TYPE_ROWID, STAT_REASON_ROWID, STAT_APP_ROWID) 
VALUES 
(
    (SELECT stat_reason.STAT_TYPE_ROWID 
    FROM VI_STAT_TYPE stat_type 
    INNER JOIN VI_STAT_GRP stat_grp 
     ON stat_type.STAT_GRP_ROWID = stat_grp.STAT_GRP_ROWID 
    LEFT OUTER JOIN VI_STAT_REASON stat_reason 
     ON stat_reason.STAT_TYPE_ROWID = stat_type.STAT_TYPE_ROWID 
    WHERE stat_grp.STAT_GRP_NAME = "DNB STATUS VALUES - AGMNT"), 
    (SELECT stat_reason.STAT_REASON_ROWID 
    FROM VI_STAT_TYPE stat_type 
    INNER JOIN VI_STAT_GRP stat_grp 
     ON stat_type.STAT_GRP_ROWID = stat_grp.STAT_GRP_ROWID 
    LEFT OUTER JOIN VI_STAT_REASON stat_reason 
     ON stat_reason.STAT_TYPE_ROWID = stat_type.STAT_TYPE_ROWID 
    WHERE stat_grp.STAT_GRP_NAME = "DNB STATUS VALUES - AGMNT"), 
    "3815226"  // include this value here 
); 

Ваш текущий запрос попытался выделить три столбца в предложении INSERT INTO, а только дает два реально значения.

+0

, как вы сказали, я сделал это, но теперь это giving..org.hibernate.exception.SQLGrammarException: ORA-01031: недостаточные привилегии \t в org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert (SQLExceptionTypeDelegate.java:82) \t at – sunny

+0

Это, по-видимому, [полностью несвязанная ошибка] (http://stackoverflow.com/questions/6880215/not-able-to-access-field-through-hibernate-on-oracle-database-on-diferent -userspace-с-только-Select-priviliges). –

+0

, но одна вещь Это то же самое, что и в моем запросе нет ничего плохого? – sunny

Смежные вопросы