java - 无法使用此类数据类型创建 Oracle 函数

标签 java oracle oracle11g

请帮助我,如何创建具有以下数据类型的函数?

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/

相关文章:

java - 升级JDK8后JSP编译报错: "The type java.lang.CharSequence cannot be resolved"

java - Clip 在 Java 中播放 WAV 文件时出现严重滞后

java - 如何在Eclipse中搜索文件及文件内容?

oracle - 带时区的 hibernate 时间戳

oracle - Spring-Hibernate 应用程序在 2 个不同的 Oracle DB 中的工作方式不同

java - java的split string方法也可以返回带分隔符的数组

oracle - 如何将 SELECT LISTAGG 值插入到 varchar 变量

css - Oracle Apex 应用程序中的显示错误

oracle - DML统计、oracle

oracle - oracle中的数字格式