当我运行此查询时,它告诉逗号丢失..?

时间:2016-09-24 06:49:36

标签: hibernate

当我运行时,此查询告诉您逗号丢失了。请查看它。 这是我的问题。

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

提前致谢。

1 个答案:

答案 0 :(得分: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子句中提及三列,而只提供两个实际值。