我想从UAT DB上传一些数据到DEV DB。当我尝试通过SQL Developer中的导出功能执行此操作时,出现错误File C:\Users\xxx\export.sql was not opened because it exceeds the maximum automatic open size
set feedback only -- for Oracle 12.2+, turn off terminal output
set sqlformat insert -- data in "insert into ..." format
-- set sqlformat csv -- data in csv format
spool /path/to/your/file.sql
select * from t; -- lines to export
spool off
set feedback off -- restore terminal output
10条答案
按热度按时间bnlyeluc1#
在一个SQL开发人员论坛上找到了以下答案:
似乎“最大自动打开大小”被硬编码为500000(我相信是字节)的值,无法覆盖它。通过限制这一点,我们可以将Java OutOfMemory在试图打开一个大文件时的任何潜在抱怨扼杀在萌芽状态。
要在不受此限制的情况下从SQL Developer中查看文件,只需使用文件|打开菜单。对于那些巨大的文件,请使用外部编辑器。如果您不想为了抑制警告对话框而自动打开文件,请使用工具|首选项|数据库|导出/查看DDL选项,并取消选中“导出时打开SQL文件”框。
您确定导出文件不包含所有插入行吗?除非遇到OutOfMemory或磁盘已满的情况,否则这将是一个错误。我刚刚在AT 55000行表上测试了您的场景,该表生成了大约20MB的export.sql。所有的行都包括在内。
问候您,Gary Graham SQL开发团队
作为总结,认为SQL Developer不是打开大数据量文件的最佳工具。
希望加里的回答能在一定程度上指导你。
如果您需要了解一些可以打开大文件的工具,请查看LINK
ngynwnxp2#
解决方案1:
将这些值设置为更高的值!
解决方案2:
将“保存到”更改为工作表!
cgyqldqp3#
我在以
insert
格式导出数据库时遇到此错误,在第一个Export wizard
屏幕上选择加载器格式解决了该问题。这可能是因为
insert
格式使用DDL和DATA作为INSERT语句创建了单个SQL脚本。因此,所有数据库都被转储到单个脚本文件中。loader
选项生成多个文件:控制文件、数据文件和SQL文件。每个表都有单独的文件。因此,导出将包含数百个文件,没有一个文件达到大小限制。但是,这可能不适用于数据量非常大的单个表,因为该表的数据文件将达到限制。
t2a7ltrp4#
您可以尝试不同的选项,如下所示。
在SQL Developer上,当右键单击表并单击导出时,将启动导出向导,您可以选择“另存为”-“单独的文件”,将数据导出到同一个SQL文件中。或者,您可以在同一向导中将格式类型更改为CSV,以便以CSV格式导出数据。
nfeuvbwi5#
如果您想要将大量数据(或少量数据)从一个数据库传输到另一个数据库,您应该考虑专门为这类任务设计的工具。
首先也是最重要的,看看Data Pump。不过,它有一点学习的曲线。
exp
和imp
(也是由Oracle提供)更容易处理,但它们更旧,功能也不如Data Pump强大。您可能还想查看SQL*Plus copy command。
ijnw1ujt6#
有一个技巧可以将大量数据(从SQL Developer)复制到Excel工作表中。
操作步骤:右击->导出数据->选择格式类型为‘文本’->选择类型为“剪贴板”->打开EXCEL表格,尝试粘贴,切记如下:)
然后粘贴数据备注:不要将数据粘贴到EXCEL的第一个单元格上。任意列中的Ctrl+v
这会奏效的。
谢谢
lkaoscv77#
您可以使用假脱机查询并将结果另存为CSV或xlsx文件以获得更大的结果。例如:
xvw2m8pv8#
1-您可以在DEV DB上创建指向UAT DB的数据库链接(db链接),以在DEV DB中插入行。
2-或者,您可以在PL/SQL中构建一个过程,在UAT DB中将数据导出到CSV格式的文件,并在DEV DB中使用Oracle外部表从该文件中进行选择。
注意日期列,用TO_CHAR写下。
3-使用Datapump从UAT DB导出数据,然后导入到DEV DB;这有点棘手。
goucqfw69#
Oracle数据库命令既可以在Oracle的SqlCL中运行,也可以在SQL Developer中运行,因此这很容易:
bqujaahr10#
要做到这一点,最简单的方法是修改屏幕截图中的“另存为”,以便在导出时保存为多个文件,而不是单个文件-