Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Prosedur Tersimpan SQL Server dari Oracle®

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. 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memeriksa apakah ada kolom sebelum menambahkannya ke tabel yang ada di PL/SQL?

  2. SQL Bergabung dengan nilai nol

  3. Penggabungan String Agregat di Oracle 10g

  4. Cara mencetak beberapa laporan dengan barcode \ atau beberapa barcode dalam satu laporan

  5. Perbedaan antara literal N'String' vs U'String' di Oracle