我正在尝试使用文件中的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
我如何完成任务?
答案 0 :(得分:2)
您需要将字符串文字拆分为两行或更多行,以避免the SQL*Plus command line limit(这与假脱机无关)。然后,您可以将单独的字符串文字连接在一起,以便在单行上获取输出:
select 'Field1,Field2,.........Field99'
|| 'Field101,Field102,.........Field199'
|| 'Field201,Field202,.........Field208'
from dual;
你需要多长时间来分割字符串,以及在哪里,取决于你的实际值。
您还需要将linesize
设置为远高于当前的500,否则它会将输出包装到多行中;它需要至少2500,因为你已经达到了至少2500,但可能还要多一点 - 再次取决于你的实际数据。也许你的意思是5000 ......
答案 1 :(得分:0)
SP2-0027:输入太长(> 2499个字符) - 忽略行
您已达到 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>