如何解决如何创建一个函数来使用 pl/sql 函数从表中打印员工所有工资、最高工资和最低工资的总和
下面是我用来将值存储在 varray 中并最终返回 varray 的代码。但是我在第 12 行遇到一个错误,提示“行/列:12/8 pls-00103:在预期以下情况之一时遇到符号“EMP_TYPE”: :=。 (@%;" 我需要做哪些改进?
create or replace type emp_type AS VARRAY(25) OF VARCHAR(10);
/
create or replace function emp_sal
return emp_type
is
emp emp_type := emp_type();
l_salary number(10);
maxim number(10);
minim number(10);
BEGIN
SELECT sum(salary) INTO l_salary FROM Employee8_43;
SELECT max(salary) INTO maxim FROM Employee8_43;
SELECT min(salary) INTO minim FROM Employee8_43;
emp emp_type := emp_type(l_salary,maxim,minim);
return emp;
END;
解决方法
你很接近;可惜您没有阅读 Oracle 告诉您的内容。
行/列:12/8 PLS-00103:在期待......时遇到符号“EMP_TYPE”
它从字面上告诉你需要知道的一切:行号、列号,以及它发现了什么但期望得到其他东西。
这个:
emp emp_type := emp_type(l_salary,maxim,minim);
应该
emp := emp_type(l_salary,minim);
所以:
SQL> create or replace type emp_type as varray(25) of varchar(10);
2 /
Type created.
SQL> create or replace function emp_sal
2 return emp_type
3 is
4 emp emp_type := emp_type();
5 l_salary number(10);
6 maxim number(10);
7 minim number(10);
8 begin
9 select sum(salary) into l_salary from employee8_43;
10 select max(salary) into maxim from employee8_43;
11 select min(salary) into minim from employee8_43;
12 emp := emp_type(l_salary,minim); --> this is line #12
13 return emp;
14 end;
15 /
Function created.
SQL> select emp_sal from dual;
EMP_SAL
-------------------------------------------------------------------------
EMP_TYPE('29025','5000','800')
SQL>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。