将 excel 文件中的数据加载到临时 table

Load data from excel file into a temporary table

我需要将 excel 文件中的 100,000 行数据加载到我使用 "on commit preserve rows" 创建的临时 table 中。但不知何故,由于会话问题,最有效的方法似乎没有填充临时 table?

我使用 Toad 导入 Table 数据,它显示导入了 x 条记录。但是当我从临时 table select 时,它是空的。然后我生成了一堆插入脚本并将它们保存在 notepad.sql 中并使用 @/script/location/notepad.sql 从蟾蜍编辑器中调用它并按 F5。它 运行 并显示插入了多少条记录。同样,temp table 仍然是空的。因此,我决定 运行 在编辑器中手动插入一个 运行dom 脚本,它出现在临时 table 中。我相信那些不起作用的方法不被认为是同一个会话?

我没有尝试过 SQLLDR,但我认为从我尝试过的方法来看它不会起作用。有人可以确认吗?我无法访问 SQLLDR,所以我不知道。

有没有办法让这个工作?我无法 运行 手动插入脚本。这将非常耗时,而且 Toad 不能同时处理那么多脚本。

使用 ON COMMIT PRESERVE ROWS 创建的 Oracle 临时表是特定于会话的,因此放入其中的数据仅在单个会话中可见,并且在该会话期间可见。 Toad 可能正在为每个 window 创建一个单独的会话,因此从一个 window/session 填充的数据在另一个 window/session 中不可见。您可以 运行 插入脚本然后 select 返回数据这一事实表明,如果两个操作都是从同一个 window 完成的,情况可能就是这样。如果您使用 SQL*Loader 加载表,我希望您会看到相同的行为,因为加载将在一个会话中 运行 并且在会话终止时数据将被丢弃。祝你好运。