Oracle 連線

Oracle 連線型別提供對 Oracle 資料庫的連線。

配置連線

主機(可選)

要連線的主機。

模式(可選)

指定要在資料庫中使用的模式名稱。

登入(可選)

指定用於連線的使用者名稱。

密碼(可選)

指定用於連線的密碼。

額外引數(可選)

指定可在 Oracle 連線中使用的額外引數(作為 JSON 字典)。支援以下引數:

  • events - 是否在事件模式下初始化 Oracle。

  • mode - sysdba, sysasm, sysoper, sysbkp, sysdgd, syskmtsysrac 中的一個,這些模式在模組級別定義。預設模式是連線。

  • purity - new, self, default 中的一個。指定從連線池獲取的會話。配置引數。

  • dsn. 指定資料來源名稱 (並忽略主機)。

  • sidservice_name。用於組成 DSN,而不是使用 Schema。

  • module (str) - 此只寫屬性設定 v$session 表中的 module 列。此字串的最大長度為 48,如果超過此長度,將收到 ORA-24960 錯誤。

  • thick_mode (bool) - 指定是否在厚模式 (thick mode) 下使用 python-oracledb。預設為 False。如果設定為 True,則必須安裝 Oracle 客戶端庫。請參閱 oracledb 文件 瞭解更多資訊。

  • thick_mode_lib_dir (str) - 在使用厚模式時用於查詢 Oracle 客戶端庫的路徑。如果未指定,則預設為在作業系統上定位 Oracle 客戶端庫的標準方式。請參閱 oracledb 文件 瞭解更多資訊。

  • thick_mode_config_dir (str) - 在使用厚模式時用於查詢 Oracle 客戶端庫配置檔案的路徑。如果未指定,則預設為在作業系統上定位 Oracle 客戶端庫配置檔案的標準方式。請參閱 oracledb 文件 瞭解更多資訊。

  • fetch_decimals (bool) - 指定數字是否應作為 decimal.Decimal 值獲取。請參閱 defaults.fetch_decimals 瞭解更多資訊。

  • fetch_lobs (bool) - 指定是否為 CLOB 或 BLOB 獲取字串/位元組,而不是定位符。請參閱 defaults.fetch_lobs 瞭解更多資訊。

使用 dsn, 主機和 sid, 主機和 service_name, 或僅主機 進行連線 (OracleHook.getconn 文件)

例如

Host = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbhost.example.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orclpdb1)))"

Host = "dbhost.example.com"
Schema = "orclpdb1"

Host = "dbhost.example.com"
Schema = "orcl"

所有支援的 Oracle 連線引數的更多詳細資訊可在 oracledb 文件 中找到。

有關透過 Web 使用者介面建立 Oracle 連線的資訊,請參見 Airflow 的 管理連線文件

“extra” 欄位示例

{
   "events": false,
   "mode": "sysdba",
   "purity": "new"
}

當將連線指定為 URI 時(在 AIRFLOW_CONN_{CONN_ID} 變數中),應遵循資料庫連線的標準語法進行指定,其中 extra 引數作為 URI 的引數傳遞(注意 URI 的所有元件都應進行 URL 編碼)。

例如

export AIRFLOW_CONN_ORACLE_DEFAULT='oracle://oracle_user:XXXXXXXXXXXX@1.1.1.1:1521?encoding=UTF-8&nencoding=UTF-8&threaded=False&events=False&mode=sysdba&purity=new'

此條目是否有幫助?