将360,000行导入到全局临时表中

我有一些问题导入一个数字列表到我创build的全局临时表中。

问题:将数据导入全局临时表时,即使有成功消息提示,也不会在所需列中显示。

先前的努力:

我目前正在使用数据导入向导方法来做到这一点。 我试图从.txt导入,但它给了我一个空错误。 我尝试从.xlsx导入,但它给了我Java堆空间错误。 我试图重命名我的.txt文件到.tsv文件,它说,它的工作,但没有实际的数据被导入。 下面的图片显示完成,但是在所需列中的最终结果计数仍为0。

插入进度
成功的消息

我以前的尝试是使用SQL Developer在工作表内插入语句,但是,我一次只能将大约20,000行插入语句复制并粘贴到工作表中。 我不想复制和粘贴多次。 但是,这样做会更新表格并保留数据。

现在的问题已经回答了。 见下文。

默认情况下,全局临时表是使用隐式on commit delete子句创build的:

 create global temporary table tblbc (bc number); Global temporary TABLE created. select duration from user_tables where table_name = 'TBLBC'; DURATION --------------- SYS$TRANSACTION 

正如对话信息所述,导入正在提交。 这意味着数据将从GTT中删除,因为这是持续时间设置的。 这相当于:

 insert into tblbc(bc) values (42); 1 row inserted. commit; Commit complete. select * from tblbc; no rows selected 

如果您重新定义了GTT,那么您将能够在提交后看到导入的数据,至less在同一个会话中:

 drop table tblbc; Table TBLBC dropped. create global temporary table tblbc (bc number) on commit preserve rows; Global temporary TABLE created. select duration from user_tables where table_name = 'TBLBC'; DURATION --------------- SYS$SESSION insert into tblbc(bc) values (42); 1 row inserted. commit; Commit complete. select * from tblbc; BC ---------- 42 

现在,您可以将GTT中的数据与其他表格进行比较,同样在该会话中进行比较。 一旦结束会话,GTT数据将会丢失。