【问题标题】:Insert values into global temp table using PL/SQL使用 PL/SQL 将值插入全局临时表
【发布时间】:2017-12-13 17:30:29
【问题描述】:

我是 PL/SQL 的新手,我想使用以下代码将值插入到全局临时表中:

CREATE GLOBAL TEMPORARY TABLE test_variable
(
only_datex TIMESTAMP(6) NULL,
only_datey TIMESTAMP(6) NULL
)
ON COMMIT PRESERVE ROWS;
DECLARE
    x TIMESTAMP(6) := CURRENT_DATE;
    y TIMESTAMP(6) := CURRENT_DATE - 1;
BEGIN 
     INSERT INTO test_variable VALUES(x,y);
END

SELECT * FROM test_variable;

尝试选择后,我收到此错误:

【问题讨论】:

    标签: sql database oracle plsql syntax-error


    【解决方案1】:

    您需要终止 pl/sql 块 - 您缺少与 end 和斜线 (/) 一起的分号 (;) 来终止块:

    CREATE GLOBAL TEMPORARY TABLE test_variable
    (
    only_datex TIMESTAMP(6) NULL,
    only_datey TIMESTAMP(6) NULL
    )
    ON COMMIT PRESERVE ROWS;
    
    DECLARE
        x TIMESTAMP(6) := CURRENT_DATE;
        y TIMESTAMP(6) := CURRENT_DATE - 1;
    BEGIN 
         INSERT INTO test_variable VALUES(x,y);
    END; -- Here
    / 
    --^ And here
    
    SELECT * FROM test_variable;
    

    【讨论】:

      【解决方案2】:

      / 后面需要一个斜线 END;

      DECLARE
          x TIMESTAMP(6) := CURRENT_DATE;
          y TIMESTAMP(6) := CURRENT_DATE - 1;
      BEGIN 
           INSERT INTO test_variable VALUES(x,y);
      END;/
      
      SELECT * FROM test_variable;
      

      【讨论】:

        猜你喜欢
        • 2013-04-05
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-05
        • 1970-01-01
        • 2014-09-01
        • 2012-02-13
        相关资源
        最近更新 更多