[英]SQLPLUS SPOOL - TO_CHAR on NUMBER field adding a trailing space
嗨,我正在使用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
請告訴我
嘗試:
SELECT LTRIM(RTRIM(TO_CHAR(RDRMST_ODOMETER,'FM000000'))) FROM TABLE
LTRIM-刪除前導空格
RTRIM-刪除尾隨空格
當使用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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.