不能在文件中 SPOOL long header
Cannot SPOOL long header in a file
我正在尝试假脱机 header 文件中有 208 个字段
set feedback off
set verify off
set head off
set echo off
set pages 0
set trimspool on
SET LINESIZE 500
spool ${FILE_NAME}
select 'Field1,Field2,.........Field208'
from dual;
SPOOL OFF
exit
我收到以下错误
SP2-0027: Input is too long (> 2499 characters) - line ignored
如何完成任务??
SP2-0027: Input is too long (> 2499 characters) - line ignored
您已达到 SQL*Plus 的限制,这对行的长度有绝对限制 2,499 个字符.
在 SQL*Plus 中做到这一点的唯一方法是在 SQL 语句中使用 换行符 而不是单行并将每个与上一个一致。
例如,
改变这个:
SQL> SELECT 'lalitkumar' NAME from dual;
NAME
----------
lalitkumar
为此:
SQL> select 'lalit'
2 ||'kumar' name from dual;
NAME
----------
lalitkumar
SQL>
您需要将字符串文字分成两行或更多行,以避免 the SQL*Plus command line limit(这与假脱机无关)。然后,您可以将单独的字符串文字连接在一起,以在一行中获得输出:
select 'Field1,Field2,.........Field99'
|| 'Field101,Field102,.........Field199'
|| 'Field201,Field202,.........Field208'
from dual;
您需要拆分字符串的次数和位置取决于您的实际值。
您还需要将 linesize
设置为比当前的 500 高很多,否则它会将输出包装成多行;它至少需要 2500,因为您已经达到了至少 2500,但可能要多得多 - 再次取决于您的实际数据。也许你的意思是 5000...
我正在尝试假脱机 header 文件中有 208 个字段
set feedback off
set verify off
set head off
set echo off
set pages 0
set trimspool on
SET LINESIZE 500
spool ${FILE_NAME}
select 'Field1,Field2,.........Field208'
from dual;
SPOOL OFF
exit
我收到以下错误
SP2-0027: Input is too long (> 2499 characters) - line ignored
如何完成任务??
SP2-0027: Input is too long (> 2499 characters) - line ignored
您已达到 SQL*Plus 的限制,这对行的长度有绝对限制 2,499 个字符.
在 SQL*Plus 中做到这一点的唯一方法是在 SQL 语句中使用 换行符 而不是单行并将每个与上一个一致。
例如,
改变这个:
SQL> SELECT 'lalitkumar' NAME from dual;
NAME
----------
lalitkumar
为此:
SQL> select 'lalit'
2 ||'kumar' name from dual;
NAME
----------
lalitkumar
SQL>
您需要将字符串文字分成两行或更多行,以避免 the SQL*Plus command line limit(这与假脱机无关)。然后,您可以将单独的字符串文字连接在一起,以在一行中获得输出:
select 'Field1,Field2,.........Field99'
|| 'Field101,Field102,.........Field199'
|| 'Field201,Field202,.........Field208'
from dual;
您需要拆分字符串的次数和位置取决于您的实际值。
您还需要将 linesize
设置为比当前的 500 高很多,否则它会将输出包装成多行;它至少需要 2500,因为您已经达到了至少 2500,但可能要多得多 - 再次取决于您的实际数据。也许你的意思是 5000...