这个 Emp_t 类型是我想要更改的类型
create type Emp_t as object(
eno number(4),
ename varchar2(15),
slary number(8,2),
dependents Dependtb_t,
edept ref Dept_t
);
/
这是改变Emp_t类型的DDL命令
alter type Emp_t
add member function calChildAllowance(eno number(4)) return float
cascade;
但是它给了我这个错误:
第 1 行出现错误:
ORA-06545: PL/SQL: 编译错误 - 编译已中止
ORA-06550: 第 12 行,第 49 列:
PLS-00103:在期望以下其中一项时遇到符号“(”:
:= 。 ) , @% 默认字符
符号“:=”被替换为“(”以继续。
ORA-06550: 第 0 行,第 0 列:
PLS-00565:EMP_T 必须作为潜在的 REF 目标(对象类型)完成
我想更改 Emp_t 类型以添加成员函数。
看起来您不需要数字数据类型的精度:
alter type Emp_t
add member function calChildAllowance(eno number) return float
cascade;
1.如果类型已存在则删除
2.连接到SQL PROMPT运行命令如下
SQL> CREATE OR REPLACE TYPE "SPLIT_TBL" AS TABLE OF VARCHAR2(32767);
2 /
Type created
SQL> CREATE OR REPLACE TYPE "INV_REF_NO" is table of varchar2(50);
2 /
Type created
注意 / 是执行上述语句所必需的。
编译依赖于此对象的包。