Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wywołać procedurę składowaną Oracle z azure Data Factory v2?

Użyłem działania wyszukiwania i instrukcji SELECT z DUAL TABLE. Ze względu na procedury składowane nie można wywołać z instrukcji SELECT. Utworzyłem funkcję oracle, która wywołuje procedurę składowaną. Funkcja zwraca wartość i ta wartość jest odbierana przez działanie wyszukiwania. Kiedy definiujesz funkcję, musisz dodać instrukcję PRAGMA AUTONOMOUS_TRANSACTION. Dzieje się tak, ponieważ Oracle domyślnie nie zezwala na wykonywanie instrukcji DML za pomocą instrukcji SELECT. Następnie musisz zdefiniować, że instrukcje DML w procedurze przechowywanej będą transakcją autonomiczną.

--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;

Przykładowe wyszukiwanie

To jest przykład w języku hiszpańskim. https://dev.to /maritzag/ejecutar-un-stored-procedure-de-oracle-desde-data-factory-2jcp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework i ciąg znaków jako NCLOB na Oracle Db

  2. Schemat inżynierii odwrotnej (wyrocznia) do ERD

  3. Czy Oracle sqlldr przetwarza równolegle wiele plików INFILE?

  4. Jak wstawić kolumnę w określonej pozycji w Oracle bez upuszczania i ponownego tworzenia tabeli?

  5. Wywołanie funkcji przechowywanej (która zwraca tablicę typu zdefiniowanego przez użytkownika) w Oracle poprzez łącze do bazy danych