Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Các thủ tục được lưu trữ trên SQL Server từ Oracle®

Trong SQL Server, hãy tạo và điền một bảng mẫu.

 TẠO BẢNG EMP (EMPNO FLOAT (4) KHÔNG PHẢI CHÍNH LÀ NULL, ENAME VARCHAR (10), JOB VARCHAR (9), MGR FLOAT (4), HIREDATE DATE, SAL NUMERIC (7,2), COMMENTERIC (7) , 2), SỐ DEPTNO (2)); CHÈN VÀO GIÁ TRỊ CỦA EM (7369, 'SMITH', 'CLERK', 7902, '12 -17-1980 ', 800, NULL, 20) CHÈN VÀO GIÁ TRỊ CỦA EM (7499,' ALLEN ',' SALESMAN ', 7698, '02 -20-1981', 1600, 300, 30) CHÈN VÀO GIÁ TRỊ CỦA EMP (7521, 'WARD', 'SALESMAN', 7698, '02-01-1981 ', 1250, 500, 30) CHÈN VÀO GIÁ TRỊ CỦA EM (7566, 'JONES', 'MANAGER', 7839, '04 -02-1981 ', 2975, NULL, 20) CHÈN VÀO GIÁ TRỊ CỦA EM (7654,' MARTIN ',' SALESMAN ', 7698, '09 -28-1981 ', 1250, 1400, 30) CHÈN VÀO GIÁ TRỊ CỦA EMP (7698,' BLAKE ',' MANAGER ', 7839, '05-01-1981', 2850, NULL, 30) CHÈN VÀO EMP CÁC GIÁ TRỊ (7782, 'CLARK', 'MANAGER', 7839, '06 -09-1981 ', 2450, NULL, 10) CHÈN VÀO GIÁ TRỊ EMP (7788,' SCOTT ',' ANALYST ', 7566, '12-09- 1982 ', 3000, NULL, 20) CHÈN VÀO GIÁ TRỊ CỦA EM (7839,' KING ',' PRESIDENT ', NULL, '11 -17-1981', 5000, NULL, 10) CHÈN VÀO GIÁ TRỊ EMP (7844, 'TURNER', 'SALESMAN', 7698, '09 -08-1981 ', 1500, 0, 30) CHÈN VÀO GIÁ TRỊ CỦA EM (7876,' ADAMS ',' CLERK ', 7788, '01-12 -1983 ', 1100, NULL, 20) CHÈN VÀO GIÁ TRỊ CỦA EM (7900,' JAMES ',' CLERK ', 7698, '12 -03-1981', 950, NULL, 30) CHÈN VÀO GIÁ TRỊ CỦA EM (7902, 'FORD ',' ANALYST ', 7566, '12 -03-1981', 3000, NULL, 20) CHÈN VÀO GIÁ TRỊ CỦA EMP (7934, 'MILLER', 'CLERK', 7782, '01-23-1982 ', 1300, NULL , 10) 

Tạo một thủ tục được lưu trữ trả về dữ liệu từ bảng này. Chúng tôi sẽ gọi quy trình này từ Oracle®.

 TẠO THỦ TỤC Trả lại Nhân viên ASBEGIN CHỌN * TỪ EMPEND 

Trong SQL*Plus , sử dụng DBMS_HS_PASSTHROUGH sau các chức năng để thực hiện thủ tục được lưu trữ và hiển thị kết quả. Trong ví dụ, sqlserverlink là tên của liên kết cơ sở dữ liệu sử dụng DG4ODBC và trình điều khiển ODBC SQL Server của Easysoft để kết nối với SQL Server.

 $ ./sqlplus / as sysdbaSQL * Plus:Phát hành 11.2.0.2.0 Sản xuất vào thứ Sáu ngày 14 tháng 10 10:03:53 2016 Bản quyền (c) 1982, 2011, Oracle. Mọi quyền được bảo lưu. R1 INTEGER; SOUT varchar2 (100); C1 INTEGER; BEGIN c:=DBMS_HS_PASSTHROUGH.OPEN_CURSOR@sqlserverlink; DBMS_HS_PASSTHROUGH.PARSE@sqlserverlink (c, 'thực thi ReturnE Employees'); LOOP R1:=DBMS_HS_PASSTHROUGH.FETCH_ROW@sqlserverlink (c); THOÁT RA KHI R1 =0; DBMS_HS_PASSTHROUGH.GET_VALUE@sqlserverlink (c, 1, SOUT); DBMS_OUTPUT.PUT_LINE (SOUT); KẾT THÚC ĐĂNG NHẬP; DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink (c); NGOẠI TRỪ KHI KHÔNG CÓ_DATA_FOUND THÌ DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@sqlserverlink (c); END; / SQL> 7369749975217597827934Q900> đã hoàn thành thành công thủ tục 
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gửi một mảng giá trị tới thủ tục Oracle để sử dụng trong mệnh đề WHERE IN

  2. CHO THUÊ LOB

  3. Cần đặt lại giá trị của chuỗi trong Oracle

  4. Làm thế nào để chuyển đổi các giá trị được phân tách bằng dấu phẩy thành các hàng trong oracle?

  5. Cách tìm tên ràng buộc trong Oracle