Ami*_*aka 3 oracle sqlplus clob
如何使用sqlplus到stdout从表中完全检索大型Clob数据?有一种方法可以使用特定于语言的数据库API来完全获得它。但是当我尝试使用纯sqlplus来获取它时,我遇到了一些问题,例如,
由于oracle clob字段可以包含4GB(最大)数据,因此,有没有使用sqlplus获取完整数据块的正确方法?我可以下载为文件吗?
我希望这个问题是明确的。我更愿意在不向数据库注入PL / SQL过程的情况下做到这一点。
1)第一张桌子和衣柜。
create table large_clob(a clob);
insert into large_clob values( dbms_xmlgen.getXml('select * from dba_objects'));
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
所有变量的描述在这里
long 2000000000
-指定要检索的CLOB字节数。(最大2GB)linesize
线的大小(最大为32k)。线的大小。如果行超出大小,则该行将换行到下一行longchunksize 32k
-将分块检索块,块大小为32kPAGESIZE 0
-违约结果页面fomrationgFEEDBACK,ECHO,TERMOUT
-禁用所有这些。 Spool
将输出重定向到output_file.txt