Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从Oracle导出大量数据_Sql_Oracle_Export - Fatal编程技术网

Sql 从Oracle导出大量数据

Sql 从Oracle导出大量数据,sql,oracle,export,Sql,Oracle,Export,我必须将大量数据导出为JSON。因此,我构建了一个查询,通过使用Oracle特定的JSON函数来构建JSON数据。到目前为止,这似乎效果不错。之后,我尝试使用SQLPlus导出数据,并将结果假脱机到一个文件中。但似乎有两个问题: 输出行在32000个字符后被截断。我试图通过指定不同的参数来更改此限制,但这似乎是一个硬限制。无限制的行长度是必要的,因为我不知道行可能会变成多长 在几千行之后,我得到以下错误: 这似乎是一些全局缓冲区的问题,而不是一个查询结果的问题。我用不同的数据做了一些测试,得出

我必须将大量数据导出为JSON。因此,我构建了一个查询,通过使用Oracle特定的JSON函数来构建JSON数据。到目前为止,这似乎效果不错。之后,我尝试使用SQLPlus导出数据,并将结果假脱机到一个文件中。但似乎有两个问题:

  • 输出行在32000个字符后被截断。我试图通过指定不同的参数来更改此限制,但这似乎是一个硬限制。无限制的行长度是必要的,因为我不知道行可能会变成多长
  • 在几千行之后,我得到以下错误:

    这似乎是一些全局缓冲区的问题,而不是一个查询结果的问题。我用不同的数据做了一些测试,得出了这个结论

我可以解决这些问题吗?或者像这样导出数据通常是个坏主意吗?有更好的办法吗?我考虑过使用
utl\u文件
。但如果我没有误解这一点,我需要一个可以从DBMS本身访问的目录。而这个我没有


提前谢谢

您必须使用SQL*Plus吗?SQL Developer和SQLcl都有可能满足您的需要的功能?我认为这不符合我的需要,因为生成的JSON需要具有特定的格式(层次结构)。但也许SQLcl没有SQLPlus的限制,可以执行我的脚本。我试试看,SQLcl更糟糕。几百行之后它就停止工作了。顺便说一下,我的参数可能有问题:
setpagesize0;设置新页面0;设置行500--设置空间0;设置回声;设置反馈;抵销;出发;设置标记HTML关闭假脱机关闭;设置COLSEP';';打开阀芯;打开服务器输出;设置线宽32767;设定长100000000;设置长块大小100000000;设置术语设置关闭
ERROR:
ORA-06502: PL/SQL: numerischer oder Wertefehler: Zeichenfolgenpuffer zu klein
ORA-06512: in Zeile 1