【发布时间】:2021-09-10 00:04:29
【问题描述】:
我尝试使用函数重载执行一个简单的包。下面是包代码。
--package specification:
create or replace package over_load as
FUNCTION print_it(v_date date) return date;
FUNCTION print_it(v_name varchar2) return number;
end over_load;
--package body:
create or replace package body over_load as
FUNCTION print_it(v_date date) return date is --function accepting and returning date
begin
dbms_output.put_line('the date is ' || v_date);
return v_date;
end print_it;
FUNCTION print_it(v_name varchar2) return number is /*function accepting string and returning number*/
v_eno employees.employee_id%type;
begin
select employee_id into v_eno from employees where first_name = v_name;
return v_eno;
end print_it;
end over_load;
我尝试使用下面的匿名块执行包中的第一个函数。
declare
sample_date date;
begin
sample_date := over_load.print_it('14-07-2017');
dbms_output.put_line(sample_date);
end;
我尝试将日期作为参数传递给第一个函数,但它会引发错误的参数类型错误。知道为什么吗?
【问题讨论】:
-
'14-07-2017'不是日期,它是根据documentation 的literals 部分的文本文字。日期文字是date '2017-07-14'
标签: sql oracle plsql plsql-package