ktm*_*124 2 sql oracle plsql sqlplus
我试图从PL/SQL脚本写入本地文件.为了做到这一点,我试图在PL/SQL中使用TEXT_IO包.
DECLARE
file_out text_io.file_type;
len number;
blob_file blob;
my_var RAW(50);
bstart NUMBER := 1;
bytelen NUMBER := 50;
BEGIN
SELECT xxx
INTO blob_file
FROM yyy
WHERE zzz
dbms_lob.read(blob_file, bytelen, bstart, my_var);
file_out := text_io.fopen('local_file_path', 'w');
text_io.put_raw(file_out, my_var);
text_io.fflush(file_out);
text_io.fclose(file_out);
END;
/
quit
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此脚本时,我收到错误,
PLS-00201: identifier 'TEXT_IO.FILE_TYPE' must be declared
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何解决这个错误,以及如何将blob的内容写入文件,因为我正在尝试?
谢谢,
ktm
TEXT_IO
仅存在于Oracle Forms中(在旧客户端/服务器时段内)具有客户端PL/SQL解释器.如果您正在使用SQL*Plus来执行PL/SQL,就像您在此处所看到的那样,该TEXT_IO
程序包将无法使用,您将无法写入客户端计算机上的文件(除非奇怪的设置位于服务器上安装客户端正在公开的驱动器,然后继续写入该安装程序).
现在,您通常可以使用SQL*Plus使用SPOOL命令直接写入本地文件.不幸的是,在一般情况下,你可能不太可能为BLOB做这件事.