嗨,我正在使用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
请让我知道
答案 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>