sqlldr 裝載換行符(使用str屬性)

perfychi發表於2012-10-31

sqlldr 裝載換行符(使用str屬性)
windows可以使用:
SQL> select utl_raw.cast_to_raw('|' ||chr(13) || chr(10)) from dual;
UTL_RAW.CAST_TO_RAW('|' || CHR(13)||CHR(10))
--------------------------------------------------------------------------------
7C0D0A
infile xx.dat "str X'7C0D0A'"

注:windows換行符是兩個ASCII,ASCII值分別是CR(13)  和LF(10)

unix下可以使用
SQL> select utl_raw.cast_to_raw('|'||chr(10)) from dual;
UTL_RAW.CAST_TO_RAW('|' || CHR(10))
--------------------------------------------------------------------------------
7C0A 

注: linux換行符是一個ASCII,ASCII值是LF(10)

sqldr控制檔案中:
infile xx.dat "str X'7C0A'"

sqlldr資料檔案格式大致是下列樣子:

1,tom|

2,  Jane|

3,Jake|

------------------------------------------------------------------------------

  如果是資料檔案是下列樣子:

1,Tom****

2,Jane***

3,Jack***


按照下面的轉換值:

SQL> select ascii('*') from dual;


ASCII('*')

----------

        42


SQL> select utl_raw.cast_to_raw('*') from dual;


UTL_RAW.CAST_TO_RAW('*')

--------------------------------------------------------------------------------

2A


SQL> select utl_raw.cast_to_raw(chr(42)) from dual;


UTL_RAW.CAST_TO_RAW(CHR(42))

--------------------------------------------------------------------------------

2A


對應的控制檔案應該是:

infile XXX.dat   str "X'2A2A2A2A0A'"

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-748002/,如需轉載,請註明出處,否則將追究法律責任。

相關文章