我在Windows 10 64位的Postgres 13.9 (oracle_fdw 2.4)上使用下面的脚本时遇到了错误。
CREATE SERVER yf FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 'yf');
CREATE USER MAPPING FOR postgres SERVER yf OPTIONS (user 'yonker', password 'his');
GRANT USAGE ON FOREIGN SERVER yf TO postgres;
SELECT oracle_diag('yf');
[HV00N]: ERROR: error connecting to Oracle: OCIAttrSet failed to set driver name in session handle
detail:ORA-24315: illegal attribute type
我可以使用sqlplus连接到oracle服务器的tnsname 'yf'。
- oracle client 10.2.0.4
- oracle server 11.2.0.4
文档说明了需求:
Oracle客户端必须是11.2或以上版本
当oracle_fdw试图在会话句柄上设置OCI_ATTR_DRIVER_NAME
时抛出错误,该句柄在Oracle 11之前不可用。使用旧的Oracle服务器版本是没有问题的,只要你使用的是不太过时的客户端版本。