Oracle 操作符

Oracle 连接类型提供到 Oracle 数据库的连接。

在 Oracle 数据库中执行 SQL

要在 Oracle 数据库中执行任意 SQL,请使用 OracleOperator

以下是执行简单查询的示例

airflow/providers/oracle/example_dags/example_oracle.py[源代码]


    opr_sql = SQLExecuteQueryOperator(
        task_id="task_sql", conn_id="oracle", sql="SELECT 1 FROM DUAL", autocommit=True
    )

在 Oracle 数据库中执行存储过程

要在 Oracle 数据库中执行存储过程,请使用 OracleStoredProcedureOperator

假设数据库中存在如下所示的存储过程

CREATE OR REPLACE PROCEDURE
TEST_PROCEDURE (val_in IN INT, val_out OUT INT) AS
BEGIN
val_out := val_in * 2;
END;
/

此存储过程接受一个整数参数 val_in,并输出一个整数参数 val_out。这可以使用以下调用来表示,使用 OracleStoredProcedureOperator 并将参数作为列表按位置传递

airflow/providers/oracle/example_dags/example_oracle.py[源代码]


    opr_stored_procedure_with_list_input_output = OracleStoredProcedureOperator(
        task_id="opr_stored_procedure_with_list_input_output",
        oracle_conn_id="oracle",
        procedure="TEST_PROCEDURE",
        parameters=[3, int],
    )

或者,也可以使用字典将参数作为关键字参数传递。

airflow/providers/oracle/example_dags/example_oracle.py[源代码]


    opr_stored_procedure_with_dict_input_output = OracleStoredProcedureOperator(
        task_id="opr_stored_procedure_with_dict_input_output",
        oracle_conn_id="oracle",
        procedure="TEST_PROCEDURE",
        parameters={"val_in": 3, "val_out": int},
    )

如果请求了 xcom 推送,则输入和输出都将传递给 xcom。

有关存储过程执行的更多信息,请参阅 oracledb 文档

此条目有帮助吗?