【问题标题】:Importing 360,000 rows into a Global Temporary Table将 360,000 行导入全局临时表
【发布时间】:2016-03-30 16:02:34
【问题描述】:

我在将数字列表导入我创建的全局临时表时遇到了一些问题。

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

以前的努力:

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


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

问题现已得到解答。见下文。

【问题讨论】:

  • “在 sql 中创建”一词没有意义。 SQL 是一种编程语言。
  • 如果出现内存(堆)错误,请增加 SQL Developer 的内存分配。您也可以将所有 360,000 个插入项放入一个脚本文件中并运行它,但它会很慢。 “临时表”是指您为此工作创建的普通表,稍后将删除,还是实际的全局临时表,其内容仅对创建它们的会话可用?
  • 全局临时表。
  • See the docs。如果您没有指定,则 commit 会从 GTT 中删除行;您可以改为使用on commit preserve rows 删除并重新创建。您可以通过user_tables.duration查看当前设置。
  • 查看该对话消息:“任务成功并已提交导入”。导入会自动提交。使用默认 GTT 设置将删除它刚刚插入的数据。

标签: sql excel import oracle-sqldeveloper


【解决方案1】:

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

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,那么您将能够在提交后看到导入的数据,至少在同一个会话中:

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 数据将丢失。

【讨论】:

  • 感谢 Alex 提供的帮助。谢谢你对我的礼貌和耐心。我可以通过什么方式更改我的问题以使其更清楚?
  • 好吧,明确说明它是 GTT 形式,一开始可能会有所帮助,然后显示创建语句 DDL。第二和第三段提到了你尝试过的几件事和你遇到的一些问题,目前还不清楚你真正想要使用哪一个 - 问题的重点实际上是“我从 .tsv 文件导入但表格是之后就空了——为什么?” (并且文件内容的一小部分样本也很好)但这并不清楚。或者我推断这就是你想要的结果!
猜你喜欢
  • 1970-01-01
  • 2017-10-02
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2023-04-08
  • 1970-01-01
  • 2013-07-21
相关资源
最近更新 更多