【问题标题】:ORA-00926: missing VALUES keywordORA-00926: 缺少 VALUES 关键字
【发布时间】:2012-08-29 20:43:36
【问题描述】:

我已将 VALUES 子句移到语句中的不同位置,但没有运气。我是新手,不胜感激。谢谢。

INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
VALUES ('NOT PUBLIC', 0)
SELECT
    KEYITEM296.KEYVALUECHAR,
    KEYITEM296.KEYSETNUM
FROM
    ITEMDATA
LEFT OUTER JOIN
    KEYITEM296
ON
    (
       ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
WHERE
    ITEMDATA.ITEMTYPENUM = 862 ;

【问题讨论】:

    标签: oracle11g dbvisualizer


    【解决方案1】:

    我是 DB2 粉丝,但您不能在 INSERT 中混合使用 VALUES 和 SELECT。

    正确的 SQL 用于插入数据:

    INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
    SELECT
        KEYITEM296.KEYVALUECHAR,
        KEYITEM296.KEYSETNUM
    FROM
        ITEMDATA
    LEFT OUTER JOIN
        KEYITEM296
    ON
        (
           ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
    WHERE
        ITEMDATA.ITEMTYPENUM = 862 
    

    INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
    VALUES ('NOT PUBLIC', 0)
    

    或者如果你想做 INSERT 然后 SELECT:

    INSERT INTO KEYITEM.296 (KEYVALUECHAR, KEYSETNUM)
    VALUES ('NOT PUBLIC', 0);
    SELECT
        KEYITEM296.KEYVALUECHAR,
        KEYITEM296.KEYSETNUM
    FROM
        ITEMDATA
    LEFT OUTER JOIN
        KEYITEM296
    ON
        (
           ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
    WHERE
        ITEMDATA.ITEMTYPENUM = 862 ;
    

    【讨论】:

    • Kovica Tim 在插入时执行两个查询
    • 在左连接中,第一个查询插入数据,第二个执行左连接,但是当他执行左连接时,他没有设置ITEMNUM值
    • 其中一个问题是KEYITEM.296和KEYITEM296。哪个是正确的?
    • KEYITEM296 我认为因为名称 = 296 的表不正常,'。'它用于将模式与表分开
    • INSERT INTO KEYITEM296 (KEYVALUECHAR, KEYSETNUM) VALUES ('NOT PUBLIC', 0);那么在select中你想看到这条插入的记录吗?如果 ITENNUM 为 NULL,该怎么办。 ITEMNUM 是生成的列吗?
    【解决方案2】:
    INSERT INTO KEYITEM296 (KEYVALUECHAR, KEYSETNUM, ITEMNUM)
    VALUES ('NOT PUBLIC', 0, 862 );
    
      --You must complete your insert with ITEMNUM
      -- you must add ; separator
      -- you must delete '.' of your query
    
    SELECT
        KEYITEM296.KEYVALUECHAR,
        KEYITEM296.KEYSETNUM
    FROM
        ITEMDATA
    LEFT OUTER JOIN
        KEYITEM296
    ON
        (
           ITEMDATA.ITEMNUM = KEYITEM296.ITEMNUM)
    WHERE
        ITEMDATA.ITEMTYPENUM = 862 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2019-10-13
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多