oracle sqlldr -> undefined symbol: sldext

2019-06-11 04:14发布

问题:

  1. 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
  2. copy sqlldr file to /usr/lib/oracle/11.2/client64/bin

  3. copy rdbms,nls folder to /usr/lib/oracle/11.2/client64/

  4. 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.