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

Loại bảng trong ví dụ về thủ tục lưu trữ của Oracle

Sau đây là một ví dụ về thủ tục được lưu trữ của Oracle, trong đó tập hợp kiểu bảng được sử dụng để xử lý dữ liệu.

Xử lý dữ liệu sử dụng loại bảng trong ví dụ về quy trình được lưu trữ của Oracle

Tạo các bảng sau và chèn dữ liệu để kiểm tra trong lược đồ của bạn.

CREATE TABLE EMP
(
EMPNO NUMBER(4),
ENAME VARCHAR2(10 BYTE),
JOB VARCHAR2(9 BYTE),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)
/
CREATE TABLE EMP_BONUS
(
EMPNO NUMBER(4),
BONUS_AMOUNT NUMBER
)
/
SET DEFINE OFF;
Insert into EMP
(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
Values
(7369, 'SMITH', 'CLERK', 7902, 
TO_DATE('12/17/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 800, 20);
Insert into EMP
(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
Values
(7499, 'ALLEN', 'SALESMAN', 7698, 
TO_DATE('02/20/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1600, 300, 30);
Insert into EMP
(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
Values
(7521, 'WARD', 'SALESMAN', 7698, 
TO_DATE('02/22/1981 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 1250, 500, 30);
COMMIT;

Tạo quy trình đã lưu trữ

CREATE OR REPLACE PROCEDURE process_bonus
IS
CURSOR c_emp
IS
SELECT EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
FROM emp;

/* declare table type in the procedure declare section as below */
TYPE t_emp_table IS TABLE OF emp%ROWTYPE
INDEX BY BINARY_INTEGER;

t_emp t_emp_table;
BEGIN
OPEN c_emp;

/* fetch cursor data into table type using bulk collect */
FETCH c_emp
BULK COLLECT INTO t_emp;

CLOSE c_emp;

FOR i IN t_emp.FIRST .. t_emp.LAST
LOOP
/* insert 5% bonus of employee's salary into emp_bonus table */
INSERT INTO emp_bonus (empno, bonus_amount)
VALUES (t_emp (i).empno, t_emp (i).sal * 5 / 100);
END LOOP;

COMMIT;
END;

Kiểm tra bằng PL / SQL Block

BEGIN
process_bonus;
END;

Kiểm tra Bảng tiền thưởng cho dữ liệu đã xử lý

SELECT * FROM EMP_BONUS;

Đầu ra:

NHÂN VIÊN

BONUS_AMOUNT

7369

40

7499

80

7521

62,5

Xem thêm:

  • Nhập tệp CSV trong Oracle bằng Quy trình đã lưu trữ
  • Trả về tập hợp kết quả từ quy trình đã lưu trữ trong Oracle
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm TRUNC (ngày tháng) trong Oracle

  2. Tổng hợp dữ liệu bằng các hàm nhóm (nhóm theo oracle)

  3. Cách xuất lược đồ cơ sở dữ liệu trong Oracle sang tệp kết xuất

  4. Oracle:Chọn từ kiểu dữ liệu bản ghi

  5. những gì xảy ra trong giai đoạn áp dụng chuẩn bị