Oracle 连接¶
Oracle 连接类型提供与 Oracle 数据库的连接。
配置连接¶
- 主机 (可选)
要连接的主机。
- 模式 (可选)
指定要在数据库中使用的模式名称。
- 登录 (可选)
指定要连接的用户名。
- 密码 (可选)
指定要连接的密码。
- 额外 (可选)
指定可在 Oracle 连接中使用的额外参数(作为 json 字典)。支持以下参数
events
- 是否在事件模式下初始化 Oracle。mode
-sysdba
,sysasm
,sysoper
,sysbkp
,sysdgd
,syskmt
或sysrac
中的一个,这些参数在模块级别定义。默认模式为连接。purity
-new
,self
,default
中的一个。指定从池中获取的会话。配置参数。dsn
. 指定数据源名称(并忽略主机)。sid
或service_name
。用于形成 DSN 而不是模式。module
(str) - 此只写属性在 v$session 表中设置模块列。此字符串的最大长度为 48,如果超出此长度,您将收到 ORA-24960。thick_mode
(bool) - 指定是否在厚模式下使用 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 的 管理连接文档。
“extras”字段示例
{ "events": false, "mode": "sysdba", "purity": "new" }
当将连接指定为 URI 时(在
AIRFLOW_CONN_{CONN_ID}
变量中),您应该按照数据库连接的标准语法进行指定,其中 extras 作为 URI 的参数传递(请注意,URI 的所有组件都应进行 URL 编码)。例如
export AIRFLOW_CONN_ORACLE_DEFAULT='oracle://oracle_user:[email protected]:1521?encoding=UTF-8&nencoding=UTF-8&threaded=False&events=False&mode=sysdba&purity=new'