Di SQL Server, buat dan isi tabel sampel.
BUAT TABEL EMP ( EMPNO FLOAT(4) NOT NULL PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR FLOAT(4), TANGGAL HIREDATE, SAL NUMERIC(7,2), COMM NUMERIC(7 ,2), DEPTNO NUMERIC(2));INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, '12-17-1980', 800, NULL, 20)INSERT INTO EMP VALUES (7499, ' ALLEN', 'SALESMAN', 7698, '02-20-1981', 1600, 300, 30)MASUKKAN KE NILAI EMP (7521, 'WARD', 'SALESMAN', 7698, '02-01-1981', 1250, 500, 30)MASUKKAN KE NILAI EMP (7566, 'JONES', 'MANAGER', 7839, '04-02-1981', 2975, NULL, 20)MASUKKAN KE NILAI EMP (7654, 'MARTIN', 'SALESMAN', 7698, '09-28-1981', 1250, 1400, 30)MASUKKAN KE NILAI EMP (7698, 'BLAKE', 'MANAGER', 7839, '05-01-1981', 2850, NULL, 30)MASUKKAN KE EMP NILAI (7782, 'CLARK', 'MANAGER', 7839, '06-09-1981', 2450, NULL, 10)MASUKKAN KE NILAI EMP (7788, 'SCOTT', 'ANALIS', 7566, '12-09- 1982', 3000, NULL, 20)MASUKKAN KE NILAI EMP (7839, 'KING', 'PRESIDEN', NULL, '11-17-1981', 5000, NULL, 10)MASUKKAN KE NILAI EMP (7844, 'TURNER', 'SALESMAN', 7698, '09-08-1981', 1500, 0, 30)MASUKKAN KE NILAI EMP (7876, 'ADAMS', 'CLERK', 7788, '01-12 -1983', 1100, NULL, 20)INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698, '12-03-1981', 950, NULL, 30)INSERT INTO EMP VALUES (7902, 'FORD ', 'ANALIS', 7566, '12-03-1981', 3000, NULL, 20)MASUKKAN KE NILAI EMP (7934, 'MILLER', 'CLERK', 7782, '01-23-1982', 1300, NULL , 10)
Buat prosedur tersimpan yang mengembalikan data dari tabel ini. Kami akan memanggil prosedur ini dari Oracle®.
BUAT PROSEDUR ReturnEmployee ASBEGIN SELECT * FROM EMPEND
Dalam SQL*Plus
, gunakan DBMS_HS_PASSTHROUGH
berikut ini berfungsi untuk menjalankan prosedur tersimpan dan menampilkan hasilnya. Dalam contoh, sqlserverlink
adalah nama link database yang menggunakan DG4ODBC dan driver ODBC SQL Server Easysoft untuk terhubung ke SQL Server.
$ ./sqlplus / as sysdbaSQL*Plus:Rilis 11.2.0.2.0 Produksi pada Jum 14 Okt 10:03:53 2016Hak Cipta (c) 1982, 2011, Oracle. Semua hak dilindungi undang-undang.Terhubung ke:Oracle Database 11g Express Edition Rilis 11.2.0.2.0 - 64bit ProductionSQL> setel echo on;set serveroutput on;DECLARE c INTEGER; R1 INTEGER; SOUT varchar2(100); C1 INTEGER;BEGIN c :=DBMS_HS_PASSTROUGH.OPEN_CURSOR@sqlserverlink; DBMS_HS_PASSTROUGH.PARSE@sqlserverlink(c,'exec ReturnEmployeees'); LOOP R1 :=DBMS_HS_PASSTHROUGH.FETCH_ROW@sqlserverlink (c); KELUAR SAAT R1 =0; DBMS_HS_PASSTROUGH.GET_VALUE@sqlserverlink (c, 1, SOUT); DBMS_OUTPUT.PUT_LINE(SOUT); AKHIR LOOP; DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink(c);PENGECUALIAN KETIKA TIDAK ADA_DATA_FOUND MAKA DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink(c);END;/SQL>736974997521756676547698778247878878397844778SQL/preSQL prosedur> berhasil diselesaikan.