SP2-0253:数据项 1(“SAL”)不适合在线
原因很简单。您希望输出格式为:
FORMAT $99,999.99
这需要11 的linesize 才能在SQL*Plus 输出中以正确的position 和alignment 显示强>。
让我们看看:
SQL> set linesize 11
SQL> select sal from emp where rownum = 1;
Salary
-----------
$800.00
查看输出中包含多少行的最简单方法是检查下划线的LENGTH:
SQL> select length('-----------') length from dual;
LENGTH
----------
11
SQL>
所以,它回答了“为什么 11 行的输出不能放入 10 行”的问题。
更新该行为的实际原因是列名被格式化为新列名,并且没有提供正确的别名 选择列表。
COLUMN 命令仅在完全匹配时适用于 SELECT 列表中的列名。如果它们不同,那么您必须在 select 语句的列列表中使用确切的别名。
解决方案添加与格式中提供的列名相同的别名。
SQL> COLUMN sal HEADING 'Salary' FORMAT $99,999.99
SQL> set lines 10
SQL> show user
USER is "SCOTT"
SQL> select sal from emp where rownum = 1;
SP2-0253: data item 1 ("SAL") will not fit on line
SQL> select sal Salary from emp where rownum = 1;
SALARY
----------
800
SQL>
或者,
SQL> set linesize 10
SQL> select sal Salary from emp where rownum = 1;
SALARY
----------
800
SQL> select sal as "Salary" from emp where rownum = 1;
Salary
----------
800
SQL> select sal from emp where rownum = 1;
SP2-0253: data item 1 ("SAL") will not fit on line
SQL> set linesize 11
SQL> select sal from emp where rownum = 1;
Salary
-----------
$800.00
SQL>