【问题标题】: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;