如何使用 sqlplus 将大 clob 数据从表中完全检索到标准输出?有一种方法可以使用特定于语言的数据库 API 来完全获得它。但是当我尝试纯粹使用 sqlplus 来获取它时,我遇到了几个问题,例如,
- 输出缓冲区太小(最大 4000)
- 字符串缓冲区太小
由于oracle clob字段可以包含4GB(最大)的数据,有没有正确的方法可以使用sqlplus获取完整的数据块?我可以将其下载为文件吗?
我希望问题是清楚的。我更希望能够在不向数据库注入 PL/SQL 过程的情况下完成此操作。
1)第一个表和 clob。
create table large_clob(a clob);
insert into large_clob values( dbms_xmlgen.getXml('select * from dba_objects'));
2)在sqlplus中运行代码
set linesize 32767 long 2000000000 longchunksize 32767 PAGESIZE 0 FEEDBACK OFF ECHO OFF TERMOUT OFF
Spool output_file.txt
select a from large_clob;
spool off
所有变量的描述是here https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm
-
long 2000000000
- 指定要检索的 CLOB 的字节数。 (最大 2GB)
-
linesize
行的大小(最大 32k)。线的大小。如果行超过大小,该行将换行到下一行
-
longchunksize 32k
- clob将以块的形式检索,块大小为32k
-
PAGESIZE 0
- 禁用结果页面格式
-
FEEDBACK,ECHO,TERMOUT
- 禁用所有这些。
-
Spool
将输出重定向到output_file.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)