我有一个对象类型header_o
create or replace type header_o as object(
col1 number,
col2 number,
col3 number);
然后我创建一个表:
create table tab1(
id number,
header header_o,
ins_date date);
我有一个为记录分配值的过程。
create or replace package pck1
as
type t_header is record(
col1 number,
col2 number,
col3 number);
end;
这里是包体
create or replace package body pck1 is
procedure proc1 is
l_header t_header;
begin
l_header.col1:=1;
l_header.col2:=2;
l_header.col3:=3;
insert into tab1(header) values l_header;
end;
end;
所以我在编译时得到插入语句的错误; ORA-03001:未实现的功能。
问题是当我创建没有列“id”和“ins_date”的表时,插入工作正常:
任何人都可以告诉我错误在哪里,或者不可能这样做?
我的oracle版本是11gR2
答案 0 :(得分:0)
添加此作为答案,因为它解决了问题:
不要定义其他类型(t_header
),而是将l_header
声明为header_o
,它应该可以正常工作。