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