问题
installed
oracle_client
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
copy
sqlldr
file to/usr/lib/oracle/11.2/client64/bin
copy
rdbms
,nls
folder to/usr/lib/oracle/11.2/client64/
settings
.bash_profile
export LANG=en_US.UTF-8 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export NLS_LANG=KOREAN_KOREA.KO16KSC5601 export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export PATH=$ORACLE_HOME/bin:$PATH
but, executed ldd -r sqlldr
follow next line
linux-vdso.so.1 => (0x00007fff03fff000)
libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007f6f036bb000)
libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007f6f032ed000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000037fae00000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000037fa600000)
libm.so.6 => /lib64/libm.so.6 (0x00000037fb600000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00000037fce00000)
libc.so.6 => /lib64/libc.so.6 (0x00000037faa00000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f6f030e0000)
/lib64/ld-linux-x86-64.so.2 (0x00000037fa200000)
undefined symbol: sldext (./sqlldr)
undefined symbol: sldextf (./sqlldr)
.bash_profile
export LANG=en_US.UTF-8
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export PATH=$ORACLE_HOME/bin:$PATH
How to remove undefined symbol
?
回答1:
The problem is at the following library:
/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
Change this library to an older version and it will work. We saw that the 11.2.0.4 version of the library is throwing this error while the 11.2.0.3 version just works.
来源:https://stackoverflow.com/questions/33839852/oracle-sqlldr-undefined-symbol-sldext