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博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-748002/ ,如需转载,请注明出处,否则将追究法律责任。