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

Procedury składowane programu SQL Server firmy Oracle®

W SQL Server utwórz i wypełnij przykładową tabelę.

CREATE TABLE EMP ( EMPNO FLOAT(4) NOT NULL PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR FLOAT(4), WYNAJMUJ DATA, SAL NUMERIC(7,2), COMM NUMERIC(7 ,2), DEPTNO NUMERYCZNY (2));WSTAW W WARTOŚCI EMP (7369, 'SMITH', 'CLERK', 7902, '12-17-1980', 800, NULL, 20)WSTAW W WARTOŚCI EMP (7499, ' ALLEN', 'SPRZEDAWCA', 7698, '20.02-1981', 1600, 300, 30) WSTAW W WARTOŚCI EMP (7521, 'WARD', 'SPRZEDAWCA', 7698, '02-01-1981', 1250, 500, 30)WSTAW W WARTOŚCI EMP (7566, 'JONES', 'MENEDŻER', 7839, '04-02-1981', 2975, NULL, 20)WSTAW W WARTOŚCI EMP (7654, 'MARTIN', 'SPRZEDAWCA', 7698, '28.09.-1981', 1250, 1400, 30)WSTAW W WARTOŚCI EMP (7698, 'BLAKE', 'MANAGER', 7839, '05-01-1981', 2850, NULL, 30)WSTAW W EMP WARTOŚCI (7782, 'CLARK', 'MANAGER', 7839, '06-09-1981', 2450, NULL, 10)WSTAW W WARTOŚCI EMP (7788, 'SCOTT', 'ANALYST', 7566, '12-09- 1982', 3000, NULL, 20) WSTAW W WARTOŚCI EMP (7839, 'KRÓL', 'PRESIDENT', NULL, '11-17-1981', 5000, NULL, 10)WSTAW W WARTOŚCI EMP (7844, 'TOKARZ', 'SPRZEDAWCA', 7698, '09-08-1981', 1500, 0, 30) WSTAW W WARTOŚCI EMP (7876, 'ADAMS', 'Urzędnik', 7788, '01-12 -1983', 1100, NULL, 20)WSTAW W WARTOŚCI EMP (7900, 'JAMES', 'CLERK', 7698, '12-03-1981', 950, NULL, 30)WSTAW W WARTOŚCI EMP (7902, 'FORD ', 'ANALYST', 7566, '12-03-1981', 3000, NULL, 20) WSTAW W WARTOŚCI EMP (7934, 'MILLER', 'CLERK', 7782, '01-23-1982', 1300, NULL , 10)

Utwórz procedurę składowaną, która zwraca dane z tej tabeli. Będziemy wywoływać tę procedurę od Oracle®.

UTWÓRZ PROCEDURĘ ReturnEmployees ASPOCZĄTEK WYBIERZ * Z EMPEND

W SQL*Plus , użyj następującego DBMS_HS_PASSTHROUGH funkcje do wykonywania procedury składowanej i wyświetlania wyników. W przykładzie sqlserverlink to nazwa łącza do bazy danych, które używa DG4ODBC i sterownika ODBC SQL Server firmy Easysoft do łączenia się z SQL Server.

$ ./sqlplus / as sysdbaSQL*Plus:Wersja 11.2.0.2.0 Produkcja w piątek 14 października 10:03:53 2016Copyright (c) 1982, 2011, Oracle. Wszelkie prawa zastrzeżone.Połączony z:Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit ProductionSQL> włącz echo;włącz serwerwyjście;DECLARE c INTEGER; R1 CAŁKOWITA; SOUT varchar2(100); C1 INTEGER;BEGIN c :=DBMS_HS_PASSTHROUGH.OPEN_CURSOR@sqlserverlink; DBMS_HS_PASSTHROUGH.PARSE@sqlserverlink(c,'exec ReturnEmployees'); PĘTLA R1 ​​:=DBMS_HS_PASSTHROUGH.FETCH_ROW@sqlserverlink (c); WYJDŹ GDY R1 =0; DBMS_HS_PASSTHROUGH.GET_VALUE@sqlserverlink (c, 1, SOUT); DBMS_OUTPUT.PUT_LINE(SOUT); PĘTLA KOŃCOWA; DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink(c);WYJĄTEK GDY NIE ZNALEZIONO DANYCH THEN DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink(c);END;/SQL>73697499752175667654769877827788783978447> zakończona pomyślnie procedura SQL. 
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBMS_JOB a DBMS_SCHEDULER

  2. Szaleństwo wersji sterownika Oracle jdbc

  3. Aktualizowanie tabeli w Oracle, jeśli jakakolwiek wartość pola ma wartość Null i ustalenie, że aktualizacja się powiodła

  4. ORA-00984:kolumna nie jest tutaj dozwolona

  5. Architektura pakietu Oracle E-Business Suite w 12.2