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'

此条目是否有帮助?