Oracle数据库的存储过程写法 oracle编写存储过程(2)
导读:Oracle数据库的存储过程写法,employees 的表,表结构如下: CREATE TABLE employees ( id NUMBER(10) PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50), salary NUMBER(10, 2), department_id NUMBER(10)); 现在我们要
Oracle数据库的存储过程写法
employees的表,表结构如下:
CREATE TABLE employees (
id NUMBER(10) PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
salary NUMBER(10, 2),
department_id NUMBER(10)
);
现在我们要创建一个存储过程,用于根据部门ID查询员工的总薪资和平均薪资。
步骤1:创建存储过程
CREATE OR REPLACE PROCEDURE get_salary_stats_by_dept (
p_department_id IN employees.department_id%TYPE,
p_total_salary OUT NUMBER,
p_avg_salary OUT NUMBER
) AS
BEGIN
SELECT SUM(salary), AVG(salary)
INTO p_total_salary, p_avg_salary
FROM employees
WHERE department_id = p_department_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
p_total_salary := 0;
p_avg_salary := 0;
WHEN OTHERS THEN
RAISE;
END get_salary_stats_by_dept;
步骤2:调用存储过程
CREATE OR REPLACE PROCEDURE get_salary_stats_by_dept (
p_department_id IN employees.department_id%TYPE,
p_total_salary OUT NUMBER,
p_avg_salary OUT NUMBER
) AS
BEGIN
SELECT SUM(salary), AVG(salary)
INTO p_total_salary, p_avg_salary
FROM employees
WHERE department_id = p_department_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
p_total_salary := 0;
p_avg_salary := 0;
WHEN OTHERS THEN
RAISE;
END get_salary_stats_by_dept;为了调用此存储过程,你可以使用匿名PL/SQL块或其他PL/SQL程序单元。以下是一个调用示例:
DECLARE
v_department_id NUMBER := 10;
v_total_salary NUMBER;
v_avg_salary NUMBER;
BEGIN
get_salary_stats_by_dept(v_department_id, v_total_salary, v_avg_salary);
DBMS_OUTPUT.PUT_LINE('Department ID: ' || v_department_id);
DBMS_OUTPUT.PUT_LINE('Total salary: ' || v_total_salary);
DBMS_OUTPUT.PUT_LINE('Average salary: ' || v_avg_salary);
END;
此示例展示了如何在Oracle数据库中创建和调用具有输入参数、输出参数和异常处理的存储过程。
上面IT袋网为您介绍的Oracle数据库的存储过程写法 和 oracle编写存储过程的全部内容,您了解了吗?
相关阅读
-
Anytype:一款用于工作和生产力的一体化安全开源应用
IT电脑小知识篇,关于Anytype的相关话题,请看下面详细的介绍。 一款适合所有人的新开源应用。尝试其公开测试版并查看它是否适合你。 Anytype 的口号是,“为那些崇尚信任和自主的人提供的
-
域名注册商怎么查 关于域名查询平台
一篇IT技术小知识,为您介绍域名注册商怎么查和关于域名查询平台IT技巧方面的经验,接下来IT袋小编为大家介绍。 有时候我们因为续费域名等原因需要知道我们的域名是在哪个注册商注册的
-
包装设计平台有哪些 优秀包装设计网站推荐
今天为网友们详解包装设计平台有哪些和优秀包装设计网站推荐IT技巧方面的经验,具体内容如下: 作为品牌的第一道形象,包装设计是重要的营销工具,它决定了消费者对品牌的第一印象,
-
HTTP/1.1 400 Bad Request什么意思 怎么解决?
我们在使用网页浏览器打开网页的时候难免会遇到这样类似的错误提示: HTTP/1.1 400 Bad Request 无法打开网页,不知道该怎么办? 下面IT袋小编就给大家分享下有哪些原因会导致打开网页报错:


