我生成了一个动态假脱机文本并将它们存储在一个表中。然后我使用文件 A 假脱机文本以创建 dynamic_spool_script.sql。在 dynamic_spool_script.sql 中,当我运行 dynamic_spool_script.sql 时,随机行的第 50 和第 60 个字符之间出现意外换行,导致 sybtax 错误。在我的原文中,没有一行超过 100 个字符。我正在使用 oracle 11g。
任何建议/帮助将不胜感激。
编辑:对于包装的文件名,我在 plsql 中使用变量创建了文本。然后我连接不同的文本变量并将最终文本存储在 CLOB 类型的表列中。
v_file_name VARCHAR2(200);
v_file_name := 'spool "'||v_out_path||'/'||v_dynamic_name||
'_rest_of_file_name_'||TO_CHAR(v_batch_date,'YYYYMMDD')||'.csv"'||chr(10)||chr(10);
我可以从表中复制文本并直接在 sql plus 中运行。这足以验证没有意外的新行或控制字符吗?只是当我将文本从表中假脱机到文件时,会出现换行问题。
编辑结束
** * ***文件 A 开始* **
set linesize 100
set pagesize 0
set long 200000
set echo off
set heading off
set term off
set time off
set feedback off
set timing off
column spool_file format a100
spool &1/dynamic_spool_script.sql
select * from dynamic_spool_text;
spool off;
* ** * ** * *文件 A 结束* ** * ** * ** *
** * ** * *dynamic_spool_script.sql START* **
一些文本....
spool "/file_path/File_name_not_more_than_100C #####a lot of space#####
_YYYYMMDD.csv"
一些文本....
* ** * **** *dynamic_spool_script.sql 开始* **