全部產品
Search
文件中心

PolarDB:ODBC

更新時間:Nov 06, 2025

本文為您介紹如何在Windows和Linux/Unix系統上為PolarDB PostgreSQL版(相容Oracle)安裝、配置並使用ODBC驅動,以實現用戶端應用與資料庫的串連。

適用範圍

  • 作業系統:

    • Windows:支援Windows7及以上版本,需Service Pack 1。

    • Linux/Unix:需安裝Libtool 1.5.10及以上版本和unixODBC-devel。

  • 存取權限:

下載驅動

系統版本

處理器架構

ODBC驅動包

AliOS 8/ALinux 3/Anolis 8/CentOS 8

X86_64

polardb-odbc-x86_64-8u-13.02.0000.1.tar.gz

ARM_64

polardb-odbc-aarch64-8u-13.02.0000.1.tar.gz

AliOS 2/ALinux 2/Anolis 7/CentOS 7

X86_64

polardb-odbc-x86_64-7u-13.02.0000.1.tar.gz

ARM_64

polardb-odbc-aarch64-7u-13.02.0000.1.tar.gz

Unix/Linux 6

X86_32

polardb-odbc-X86_32-6u-13.02.0000.1.tar.gz

Ubuntu 18

X86_64

polardb-odbc-x86_64-ubuntu18.04-13.02.0000.1.tar.gz

Windows 7及以上

X86_64

polardb2_odbc_x64_13.02.0000.1.msi

X86_32

polardb2_odbc_x86_13.02.0000.1.msi

Windows系統使用ODBC驅動

安裝ODBC驅動

  1. 根據Windows作業系統的位元選擇對應的安裝包,下載地址請參見下載驅動

  2. 右鍵安裝或使用管理員身份運行polardb2_odbc_*_*.msi檔案,即可完成ODBC安裝。

使用ODBC串連PolarDB

  1. 控制台中開啟管理工具

  2. 管理工具頁面,找到並運行ODBC資料來源

  3. ODBC資料來源管理程式頁面,單擊添加

  4. 選擇PolarDB Unicode(x64)作為資料來源的驅動程式,單擊完成

  5. 在彈出的對話方塊中,輸入以下資訊。

    image.png

    參數

    說明

    Data Source

    資料來源名稱。

    Description

    資料來源的描述。

    Database

    目標資料庫名稱。

    SSL Mode

    選擇SSL加密方式。

    Server

    目標資料庫連接地址,PolarDB叢集串連地址查看方式請參見查看或申請串連地址

    Port

    目標資料庫的連接埠,預設為1521。

    User Name

    資料庫帳號。

    Password

    資料庫帳號的密碼。

    單擊Test,如果串連串配置正確,則會提示串連成功。

    image.png

  6. 單擊Save即可。

Unix或Linux系統使用ODBC驅動

說明

此處以CentOS系統為例,其他動作系統,請根據實際情況調整相關命令。

安裝ODBC驅動

  1. 根據作業系統的架構和版本下載對應的ODBC驅動,下載地址請參見下載驅動

  2. 安裝ODBC驅動。PolarDB提供的ODBC驅動壓縮包無需安裝,解壓後即可使用。解壓命令如下所示:

    tar -zxvf polardb-odbc-*-*-*.tar.gz
    說明

    其中polardb-odbc-*-*-*.tar.gz請替換為實際下載擷取的壓縮包名稱。

  3. 執行以下命令,設定環境變數LD_LIBRARY_PATH的路徑指向。

    export LD_LIBRARY_PATH=<PolarDB-ODBC/lib>:$LD_LIBRARY_PATH

    其中,<PolarDB-ODBC/lib/>路徑需替換為ODBC解壓目錄所在的實際路徑。

  4. 執行以下命令,設定環境變數ODBCINI的路徑指向。

    export ODBCINI=</your odbc.init file path>

使用ODBC串連PolarDB

  1. 在Linux伺服器上安裝的Libtool,Libtool需要是1.5.1以上版本。

    yum install -y libtool
  2. 在Linux伺服器上安裝unixODBC-devel。

    yum install -y unixODBC-devel
  3. 編輯您配置的odbc.ini檔案。

    vim $ODBCINI 
  4. 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解壓目錄所在的實際路徑。

  5. 串連PolarDB。

    $isql -v POLARDB
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>

常見問題

使用PowerBuilder通過ODBC查詢資料時報錯ERROR: column "_polarHiddenprefix_dts_ROWID" does not existERROR: column "polar_sys_rowid_attr" does not exist

這是早期版本驅動在處理隱藏列時的一個已知問題。該問題已在13.02.0000.1或更高版本的ODBC驅動中修複,請升級您的驅動版本。

使用PowerBuilder查詢時報錯ERROR: syntax error at or near "limit"

這是由於將SQL保留關鍵字用作列名引發的語法錯誤。該問題已在13.02.0000.1或更高版本的ODBC驅動中修複,請升級您的驅動版本。

使用isql串連PolarDB時提示Can't open lib '/my/path/to/psqlodbcw.so' : file not found,但檔案實際存在,是什麼原因?

通常是由於psqlodbcw.so檔案所依賴的動態庫(如libpq.so)缺失或未被系統找到。您可以通過ldd命令檢查依賴關係:

# 將路徑替換為您的實際路徑
ldd /my/path/to/psqlodbcw.so

# 樣本輸出,顯示 libpq.so.5 => not found
linux-vdso.so.1 =>  (0x00007ffd7916a000)
libpq.so.5 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f388ac00000)
libodbcinst.so.2 => /lib64/libodbcinst.so.2 (0x00007f388a800000)
libc.so.6 => /lib64/libc.so.6 (0x00007f388a400000)
/lib64/ld-linux-x86-64.so.2 (0x00007f388afd1000)
libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f388a000000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3889c00000)

更新日誌

13.02.0000.1(2025-02-10)

  • 類型相容

    • DATE類型相容Oracle行為,支援包含時、分、秒資訊。

    • INTERVAL類型相容Oracle行為,禁止直接查詢INTERVAL列,需先將其轉換為字串再進行查詢。

  • API適配

    • PGAPI_Columns等API已適配ROWID和DTS,不再展示相關的系統列和系統索引。

    • PGAPI_Columns等API現已支援將SQL關鍵字作為列名的情境。