8 db2
我通常使用 SQL Server,但对于这个项目,我必须学习 DB2。如果我能让下面的代码工作,我就为整个项目做好了准备。以下是我无法上班的基本示例。我想要做的就是创建一个已创建的全局临时表 (CGTT) 并向其附加数据。如果我使用声明的全局临时表,下面的相同代码将起作用,但出于我的目的,我必须有一个 CGTT。
CREATE GLOBAL TEMPORARY TABLE TEST_TBL(
KEY_ID BIGINT,
SOMETEXT VARCHAR(10)
);
INSERT INTO USERID.TEST_TBL
VALUES(123456,'TEST TEST');
SELECT * FROM USERID.TEST_TBL;
SELECT COUNT(*) FROM USERID.TEST_TBL;
Run Code Online (Sandbox Code Playgroud)
以上执行正常,没有错误。执行插入时,它甚至告诉我“更新了 1 行”。但是, select * 和 count(*) 都给了我 0 结果;我想知道这是否是一个权限问题,但是我可以拥有创建 CGTT 但不能插入的权限吗??
提供的任何帮助将不胜感激。提前致谢。
mus*_*cio 11
默认情况下,全局临时表是使用选项创建的ON COMMIT DELETE ROWS
。无论您使用什么工具来运行您的语句,都必须打开自动提交选项,这样一旦您发出 INSERT 语句,它就会被提交,从而删除表中的行。
您应该使用该ON COMMIT PRESERVE ROWS
选项创建表,或者在运行命令时禁用自动提交并在完成后发出显式COMMIT
。您选择哪个选项取决于您的业务逻辑。
归档时间: |
|
查看次数: |
22149 次 |
最近记录: |