请帮助我,如何创建具有以下数据类型的函数?
create or replace FUNCTION "SUSPENDTIME"
(
keydate in types.char10,
keytime in types.char8)
由于找不到数据类型
而出现错误。
我尝试创建以下类型但不起作用
创建或替换 TYPE 类型为 OBJECT ( char10 char(10)、char8 char(8)、char6 char(6)、 char1 char(1)、char2 char(2)、char21 char(21) );
行/列:1/42 PLS-00201:必须声明标识符“TYPES.CHAR10”
最佳答案
这可能只是
create or replace function suspendtime (keydate in varchar2,
keytime in varchar2)
不过,也许它甚至可以是单个参数:
create or replace function suspendtime (keydatetime in date)
<小时/>
[编辑:看到您的评论后]
它看起来像是用户定义的类型集合。像这样的事情:
名称为types
的包,其中包含某些子类型:
SQL> create or replace package types as
2 subtype char10 is varchar2(10);
3 subtype num81 is number(8, 1);
4 end types;
5 /
Package created.
使用这些类型的函数:
SQL> create or replace function f_test (par_ename in types.char10)
2 return types.num81
3 is
4 retval number;
5 begin
6 select sal into retval
7 from emp
8 where ename = par_ename;
9 return retval;
10 end;
11 /
Function created.
有效果吗?
SQL> select f_test('KING') from dual;
F_TEST('KING')
--------------
5000
SQL>
是的,确实如此。
<小时/>因此,如果您想使用 types.char10
及类似内容,则必须首先创建它们。如果没有,您就不能期望 SUSPENDTIME
函数能够编译。
关于java - 无法使用此类数据类型创建 Oracle 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032627/