sql >> データベース >  >> RDS >> Oracle

Azure DataFactoryv2からOracleストアドプロシージャを呼び出す方法

    ルックアップアクティビティとDUALTABLEのSELECTステートメントを使用しました。ストアード・プロシージャーのため、ステートメントSELECTから呼び出すことはできません。 oracle関数を作成し、その関数がストアドプロシージャを呼び出します。関数は値を返し、この値はルックアップアクティビティによって受信されます。関数を定義するときは、ステートメントPRAGMAAUTONOMOUS_TRANSACTIONを追加する必要があります。これは、OracleがデフォルトでSELECTステートメントを使用したDML命令の実行を許可していないためです。次に、ストアドプロシージャのDML命令が自律型トランザクションになることを定義する必要があります。

    --Tabla
    CREATE TABLE empleados(
       emp_id NUMBER(9),
       nombre VARCHAR2(100),
       CONSTRAINT empleados_pk PRIMARY KEY(emp_id),
    );
    
    create or replace procedure insert_empleado (numero in NUMBER, nombre in VARCHAR2) is
     begin
        INSERT INTO empleados (emp_id, nombre)
        Values(numero, nombre);
    COMMIT;
    end;
    
    create or replace function funcinsert_empleado (numero in NUMBER, nombre in VARCHAR2)
    return VARCHAR2 
    is
    PRAGMA AUTONOMOUS_TRANSACTION;
    begin
      insert_empleado (numero, nombre);
      return 'done';
    end;
    --statement in query of lookup
    SELECT  funcinsert_empleado ('1', 'Roger Federer') 
    FROM DUAL;
    

    ルックアップの例

    これはスペイン語の例です。 https://dev.to / maritzag / ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp



    1. パラメータの数/タイプを知らなくても機能を削除しますか?

    2. PostgreSQLのすべての最適化を無効にする方法

    3. MariaDBでのSYS_GUID()のしくみ

    4. SQL Server:2つのテーブルに同時に挿入することは可能ですか?