我一直在修补sqlplus一段时间了,我已经设法让sqlplus将文件内容读入替换变量中:
exit | sqlplus -s login/pass@db @script.sql "`cat file.txt`"
Run Code Online (Sandbox Code Playgroud)
这主要是因为我的脚本需要...甚至保留文件中的换行符.但是,我只使用了50或60字节大小的示例文件.我最终使用的实际文件将至少为几千字节.所以就在这时我决定检查一个替换变量的最大大小:240个字符.
我的sqlplus脚本中有没有办法将文件的内容读入绑定变量?Oracle文档似乎用GET命令暗示了这一点,并说通常你只是用它来加载sql/sqlplus脚本.
http://docs.oracle.com/cd/B10501_01/server.920/a90842/ch13.htm#1009882
file_name [.ext]表示要加载的文件(通常是脚本).
是的,这是一个棘手的方法.把东西放到props.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;
/
Run Code Online (Sandbox Code Playgroud)
请注意,该文件props.txt不能包含"@",否则您将获得嵌套的SQL*PLUS调用
| 归档时间: |
|
| 查看次数: |
9880 次 |
| 最近记录: |