Oracle 連線¶
Oracle 連線型別提供對 Oracle 資料庫的連線。
配置連線¶
- 主機(可選)
要連線的主機。
- 模式(可選)
指定要在資料庫中使用的模式名稱。
- 登入(可選)
指定用於連線的使用者名稱。
- 密碼(可選)
指定用於連線的密碼。
- 額外引數(可選)
指定可在 Oracle 連線中使用的額外引數(作為 JSON 字典)。支援以下引數:
events- 是否在事件模式下初始化 Oracle。mode-sysdba,sysasm,sysoper,sysbkp,sysdgd,syskmt或sysrac中的一個,這些模式在模組級別定義。預設模式是連線。purity-new,self,default中的一個。指定從連線池獲取的會話。配置引數。dsn. 指定資料來源名稱 (並忽略主機)。sid或service_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'