问题
installed
oracle_clientoracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
copy
sqlldrfile to/usr/lib/oracle/11.2/client64/bincopy
rdbms,nlsfolder to/usr/lib/oracle/11.2/client64/settings
.bash_profileexport 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