PolarDB PostgreSQL版(兼容Oracle)提供了Unix、Linux系统版本和Windows系统版本的ODBC驱动,本文将介绍在不同系统中如何使用ODBC驱动。
前提条件
下载驱动
| 系统版本 | 处理器架构 | ODBC驱动包 | 
| AliOS 8/ALinux 3/Anolis 8/CentOS 8 | X86_64 | |
| ARM_64 | ||
| AliOS 2/ALinux 2/Anolis 7/CentOS 7 | X86_64 | |
| ARM_64 | ||
| Unix/Linux 6 | X86_32 | |
| Ubuntu 18 | X86_64 | |
| Windows 7及以上 | X86_64 | |
| X86_32 | 
Windows系统使用ODBC驱动
安装ODBC驱动
- 根据Windows操作系统的位数选择对应的安装包,下载地址请参见下载驱动。 
- 右键安装或使用管理员身份运行 - polardb2_odbc_*_*.msi文件,即可完成ODBC安装。
使用ODBC连接PolarDB
- 在控制面板中打开管理工具。 
- 在管理工具页面,找到并运行ODBC数据源。 
- 在ODBC数据源管理程序页面,单击添加。 
- 选择PolarDB Unicode(x64)作为数据源的驱动程序,单击完成。  
- 在弹出的对话框中,输入以下信息。  - 参数 - 说明 - Data Source - 数据源名称。 - Description - 数据源的描述。 - Database - 目标数据库名称。 - SSL Mode - 选择SSL加密方式。 - Server - 目标数据库连接地址,PolarDB集群连接地址查看方式请参见查看或申请连接地址。 - Port - 目标数据库的端口,默认为1521。 - User Name - 数据库账号。 - Password - 数据库账号的密码。 - 单击Test,如果连接串配置正确,则会提示连接成功。  
- 单击Save即可。 
Unix或Linux系统使用ODBC驱动
此处以CentOS系统为例,其他操作系统,请根据实际情况调整相关命令。
安装ODBC驱动
- 根据操作系统的架构和版本下载对应的ODBC驱动,下载地址请参见下载驱动。 
- 安装ODBC驱动。PolarDB提供的ODBC驱动压缩包无需安装,解压后即可使用。解压命令如下所示: - tar -zxvf polardb-odbc-*-*-*.tar.gz说明- 其中 - polardb-odbc-*-*-*.tar.gz请替换为实际下载获取的压缩包名称。
- 执行以下命令,设置环境变量LD_LIBRARY_PATH的路径指向。 - export LD_LIBRARY_PATH=<PolarDB-ODBC/lib>:$LD_LIBRARY_PATH- 其中,<PolarDB-ODBC/lib/>路径需替换为ODBC解压目录所在的实际路径。 
- 执行以下命令,设置环境变量ODBCINI的路径指向。 - export ODBCINI=</your odbc.init file path>
使用ODBC连接PolarDB
- 在Linux服务器上安装的Libtool,Libtool需要是1.5.1以上版本。 - yum install -y libtool
- 在Linux服务器上安装unixODBC-devel。 - yum install -y unixODBC-devel
- 编辑您配置的 - odbc.ini文件。- vim $ODBCINI
- 在 - odbc.ini文件中添加如下信息。- [POLARDB] Description = ODBC for POLARDB Driver = <PolarDB-ODBC/lib/psqlodbcw.so> Driver64 = <PolarDB-ODBC/lib/psqlodbcw.so> Database = <数据库名称> Servername = <数据库连接地址> Password = <密码> Port = <端口> Username = <用户名> Trace = yes TraceFile = /tmp/odbc.log FileUsage = 1说明- PolarDB集群连接地址查看方式请参见查看或申请连接地址。 
- 示例中PolarDB-ODBC/lib/路径需替换为ODBC解压目录所在的实际路径。 
 
- 连接PolarDB。 - $isql -v POLARDB +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
常见问题
- PowerBuilder通过ODBC连接PolarDB查询数据报错 - ERROR: column "_polarHiddenprefix_dts_ROWID" does not exist或- ERROR: column "polar_sys_rowid_attr" does not exist。- 隐藏列问题,已在新版本修复,下载不低于13.02.0000.1版本的ODBC驱动即可解决。 
- PowerBuilder通过ODBC连接PolarDB查询数据报错 - ERROR: syntax error at or near "limit"。- 保留关键字作为列名的问题,已在新版本修复,下载不低于13.02.0000.1版本的ODBC驱动即可解决。 
版本更新日志
版本13.02.0000.1(2025-02-10)
- DATE类型兼容Oracle,包含时分秒信息。 
- INTERVAL类型兼容Oracle,禁止直接查询INTERVAL列,需要将INTERVAL列转换为字符串使用。 
- PGAPI_Columns等API适配ROWID和DTS,不展示ROWID和DTS相关的系统列和系统索引。 
- PGAPI_Columns等API支持以关键字作为列名场景。