使用 PL/SQL 将值插入全局临时表
Posted
技术标签:
【中文标题】使用 PL/SQL 将值插入全局临时表【英文标题】:Insert values into global temp table using 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;
尝试选择后,我收到此错误:
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于使用 PL/SQL 将值插入全局临时表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jdbc oracle 插入和选择全局临时表? [复制]