SQLPLUS SPOOL-在NUMBER字段上添加TO_CHAR,添加尾随空格

时间:2018-10-16 20:39:02

标签: sql spool trailing

嗨,我正在使用sql脚本通过假脱机命令将数据提取到文件中。 我正在将一个数字列转换为to_CHAR,并在末尾添加了额外的空间。我已经使用FM0000作为格式,但是不确定将数字转换为字符时为什么要添加尾随空格。

我在脚本中使用以下

SET SPACE 0
SET LINESIZE 1000
SET TRIMSPOOL ON
--SET TRIMOUT ON
SET TERMOUT OFF
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SPOOL /u05/oracle/loadarea/Paragon/iib/data/rdrmst.dat

SELECT TO_CHAR(RDRMST_ODOMETER,'FM000000') FROM TABLE

请让我知道

2 个答案:

答案 0 :(得分:0)

尝试:

SELECT LTRIM(RTRIM(TO_CHAR(RDRMST_ODOMETER,'FM000000'))) FROM TABLE

LTRIM-删除前导空格

RTRIM-删除尾随空格

答案 1 :(得分:0)

使用TO_CHAR()将数字转换为固定宽度的字符串时,空格用于符号。处理它的正确方法是像执行操作一样使用Format Mask格式。考虑一下:

SQL> SELECT '['||TO_CHAR(4000,'0009')||']'    test1,
            '['||TO_CHAR(-4000,'0009')||']'   test2,
            '['||TO_CHAR(4000,'FM0009')||']'  test3,
            '['||TO_CHAR(-4000,'FM0009')||']' test4
     FROM dual;

TEST1   TEST2   TEST3   TEST4
------- ------- ------- -------
[ 4000] [-4000] [4000]  [-4000]

SQL>