我已经修改 sqlplus 一段时间了,我已经设法让 sqlplus 将文件的内容读入替换变量,如下所示:
exit | sqlplus -s login/pass@db @script.sql "`cat file.txt`"
这主要按照我的脚本要求工作...甚至文件中的换行符也被保留。但是,我仅使用大小为 50 或 60 字节的示例文件。我最终使用的实际文件至少有几千字节。因此,此时我决定检查替换变量的最大大小:240 个字符。
我的 sqlplus 脚本中有没有办法将文件的内容读入绑定变量? Oracle 文档似乎用 GET 命令暗示了这一点,说通常您将使用它来加载 sql/sqlplus 脚本。
http://docs.oracle.com/cd/B10501_01/server.920/a90842/ch13.htm#1009882
file_name[.ext] 表示您要加载的文件(通常是脚本)。
是的,有一个棘手的方法可以做到这一点。
把东西放进去道具.txt并运行脚本:
DECLARE
-- the @@ expression must be in separate line as follows
file_contents VARCHAR2(32767) := '
@@props.txt
';
BEGIN
dbms_output.put_line('===');
dbms_output.put_line(file_contents);
dbms_output.put_line('===');
END;
/
请注意该文件props.txt
不能包含“@”,否则会嵌套
SQL*PLUS 调用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)