

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Orafce 擴充功能中的函數
<a name="Appendix.PostgreSQL.CommonDBATasks.orafce"></a>

Orafce 擴充功能提供的函數和運算子，可以模擬來自 Oracle 資料庫的函數和軟體套件的子集合。Orafce 擴充功能可讓您更輕易地將 Oracle 應用程式移植到 PostgreSQL。RDS for PostgreSQL 9.6.6 版及更高版本支援此擴充功能。如需有關 Orafce 的詳細資訊，請參閱 GitHub 上的 [Orafce](https://github.com/orafce/orafce)。

**注意**  
RDS for PostgreSQL 不支援 `utl_file` 套件，該套件屬於 Orafce 擴充功能的一部分。這是因為 `utl_file` 結構描述函式雖能夠在作業系統的文字檔上進行讀取及寫入操作，但必須擁有基礎主機的超級使用者存取權，才能執行此類操作。RDS for PostgreSQL 為受管服務，不提供主機存取權。

**使用 Orafce 擴充功能**

1. 使用您用來建立資料庫執行個體的主要使用者名稱，來連線至資料庫執行個體。

   如果您想要在相同的資料庫執行個體中為不同的資料庫開啟 Orafce，請使用 `/c dbname` psql 命令。使用此命令，您可以在啟動連線後從主要資料庫進行變更。

1. 使用 `CREATE EXTENSION` 陳述式開啟 Orafce 擴充功能。

   ```
   CREATE EXTENSION orafce;
   ```

1. 使用 `ALTER SCHEMA` 陳述式將 oracle 結構描述的擁有權移轉至 rds\$1superuser 角色。

   ```
   ALTER SCHEMA oracle OWNER TO rds_superuser;
   ```

   如果您想要查看 oracle 結構描述的擁有者清單，請使用 `\dn` psql 命令。