程序帮助pl / sql

时间:2016-11-25 20:39:42

标签: sql plsql

创建一个程序LE_P6,该程序接受表示部门编号的单个数字输入参数p_deptno,对该特定部门的所有员工的工资求和,然后将该信息输出到屏幕。要处理输入的p_deptno不存在的情况,请测试um是否为null。如果sum为null,则引发用户定义的异常并向屏幕输出指示已发生错误的消息。此外,使用以下情况测试程序并包括输出。

p_deptno是10

p_deptno是50

set serveroutput on
CREATE OR REPLACE PROCEDURE LE_P6 (
  p_deptno dept.deptno%TYPE,
  p_sal emp.sal%TYPE) IS
  null_salary EXCEPTION;
PRAGMA EXCEPTION_INIT(null_salary, -20101);
BEGIN
  select SUM(SAL) 
  Into p_sal
  from emp;
EXCEPTION
WHEN null_salary THEN
  DBMS.OUTPUT_PUT.LINE ('Salary cannot be null');
End LE_P6;

1 个答案:

答案 0 :(得分:1)

您只需要一个参数而不是两个参数,并且DBMS_OUTPUT包名称中存在拼写错误。尝试:

CREATE OR REPLACE PROCEDURE LE_P6 (
  p_deptno dept.deptno%TYPE) IS
  null_salary EXCEPTION;
  p_sal number;
PRAGMA EXCEPTION_INIT(null_salary, -20101);
BEGIN
  select SUM(SAL) 
  Into p_sal
  from emp
  where deptno = p_deptno;
  DBMS_OUTPUT.PUT_LINE (p_sal);
EXCEPTION
WHEN null_salary THEN
  DBMS_OUTPUT.PUT_LINE ('Salary cannot be null');
End LE_P6;