為 AlloyDB Omni 安裝 orafce

選取說明文件版本:

本頁說明如何手動將 orafce 擴充功能新增至現有的 AlloyDB Omni 安裝項目。orafce 擴充功能提供函式和運算子,可模擬 Oracle 資料庫中的部分函式和套件。這個擴充功能可簡化應用程式從 Oracle 遷移至與 PostgreSQL 相容資料庫 (例如 AlloyDB Omni) 的程序。

事前準備

在系統上安裝 AlloyDB Omni

在 AlloyDB Omni 安裝中新增 orafce

如要在 AlloyDB Omni 安裝中新增 orafce 擴充功能,請按照下列步驟操作:

  1. 新增 PostgreSQL Yum 存放區:

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  2. 安裝 PostgreSQL 伺服器和開發套件:

    sudo dnf install -y "postgresql17-server"
    
  3. 安裝 Orafce 擴充功能:

    sudo dnf install -y orafce_17
    
  4. 建立必要符號連結,確保擴充功能位於預期路徑:

    set -e
    PGVER="17"
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/share/extension"
    
    for file in /usr/pgsql-${PGVER}/share/extension/*; do
      target="/usr/lib/postgresql/${PGVER}/share/extension/$(basename "$file")"
      if [[ ! -e "$target" ]]; then
        sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
        echo "Created extension link for $(basename "$file")"
      else
        echo "Target $target already exists."
      fi
    done
    
    sudo mkdir -p "/usr/lib/postgresql/${PGVER}/lib"
    
    for file in /usr/pgsql-${PGVER}/lib/*; do
        if [[ ! -e "$target" ]]; then
          sudo ln -s "$file" "$target" || (echo "Failed to link \"$file\" to \"$target\", exiting." && exit 1)
          echo "Created lib link for $(basename "$file")"
        else
          echo "Target $target already exists."
        fi
    done
    
  5. 使用 orafce 擴充功能連線至資料庫:

    /usr/lib/postgresql/17/bin/psql -h localhost -U postgres
    
  6. 啟用 orafce:

    CREATE EXTENSION IF NOT EXISTS ORAFCE;
    
  7. 確認 orafce 已安裝並啟用:

    SELECT oracle.sysdate();
    

    輸出結果會與下列內容相似:

    postgres=# SELECT oracle.sysdate();
    sysdate
    ---------------------
    2025-12-12 16:36:30
    (1 row)