Closed MobeenNaser closed 8 months ago
The linker didn't find the Oracle client shared library. Do what the documentation recommends:
Set the environment variable ORACLE_HOME to the location of the Oracle installation.
its installed now but when i write create extension command this error raised :
ERROR: extension "oracle_fdw" has no installation script nor update path for version "1.2"
Then you didn't properly install the extension with make install
.
The file oracle_fdw--1.2.sql
is missing in the extension
subdirectory of the PostgreSQL share directory, which you can find with pg_config --sharedir
.
i tried the process again
this is the output of make install :
and this is the content of extinsion directory :
when i run create extension oracle_fdw
this error is raised :
i changed the installation Pathe to the Path in the eoor and i get a new error :
the .so file is exist
ld_library_PATH=/usr/lib/oracle/21/client64/lib
Please, please, please use formatted text, not images. I have a hard time doing copy and paste from that...
You built oracle_fdw against a different version of PostgreSQL than the one where you installed it. From the error message, the version you used to build must have been older than v12, but the version where you installed it must be newer than that. That won't work: you have to build oracle_fdw against the same version of PostgreSQL as the one where you are using it.
This diagnosis fits your earlier trouble: you probably have a different pg_config
on your PATH
when you run make
than when you run make install
.
The easiest way to resolve the problem would be to uninstall the decrepit old version of PostgreSQL that is installed in /usr/share/pgsql
. Very likely, the old packages are from the Ubuntu/Debian distribution, while the new ones are from the PGDG. That is always a very bad idea.
you mean im using newer version of postgres and i have to use older like 11 if you mean this
I'm using postgres 15 can you please tell me which version of oracle_fdw should i use.
No. Uninstall the installation packages for the ancient PostgreSQL version on your system. Something like
sudo apt remove ???
Replace ???
with the name of the installation package.
should i run make and make install using root user
No, you should uninstall the bad software.
Did you succeed? Do you need any more help?
Closing as inactive; feel free to reopen if you still need help.
hi i'm facing this error while making oracle_fdw
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -shared -o oracle_fdw.so oracle_fdw.o oracle_utils.o oracle_gis.o -L/usr/lib64 -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--as-needed -L"/var/lib/pgsql/instantclient_11_2/" -L"/var/lib/pgsql/instantclient_11_2/bin" -L"/var/lib/pgsql/instantclient_11_2/lib" -L"/var/lib/pgsql/instantclient_11_2/lib/amd64" -L/usr/lib/oracle/11.2/client64/lib -lclntsh /usr/bin/ld: cannot find -lclntsh collect2: error: ld returned 1 exit status make: *** [/usr/lib64/pgsql/pgxs/src/makefiles/../../src/Makefile.shlib:322: oracle_fdw.so] Error 1