对象付值

dongdonghe1 2006-12-11 10:11:44
第一个对象
create or replace type GET_REQUEST_OBJ as object
(
REQUEST_DIV VARCHAR2(2),
REQUEST_CD VARCHAR2(13),
REQUEST_DATE DATE
)
create or replace type GET_REQUEST_TYPE is table of GET_REQUEST_OBJ;
第二个对象
type TYPE_GET_REQUEST IS record(
REQUEST_DIV VARCHAR2(2),
REQUEST_CD VARCHAR2(13),
REQUEST_DATE DATE
)
type REC_GET_REQUEST_DATA is table of type_get_request index by binary_integer;

两个对象的变量声明
GET_REQUEST_DATA_OBJ GET_REQUEST_TYPE;
G_REC_GET_REQUEST REC_GET_REQUEST_DATA;

现在是G_REC_GET_REQUEST变量里有3条记录,怎样才能把G_REC_GET_REQUEST的数据付给GET_REQUEST_DATA_OBJ变量呢?请各位帮帮忙。
...全文
96 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongdonghe1 2006-12-11
  • 打赏
  • 举报
回复
太感谢icedut(冰) ,好用了。谢谢谢谢 :)
icedut 2006-12-11
  • 打赏
  • 举报
回复
应该可以满足lz要求了
icedut 2006-12-11
  • 打赏
  • 举报
回复
declare
type TYPE_GET_REQUEST IS record(
REQUEST_DIV VARCHAR2(2),
REQUEST_CD VARCHAR2(13),
REQUEST_DATE DATE
);
type REC_GET_REQUEST_DATA is table of type_get_request index by binary_integer;
GET_REQUEST_DATA_OBJ GET_REQUEST_TYPE:=GET_REQUEST_TYPE();
G_REC_GET_REQUEST REC_GET_REQUEST_DATA;
type_req TYPE_GET_REQUEST;
type_obj GET_REQUEST_OBJ;
begin
type_req.REQUEST_DIV:='a';
type_req.REQUEST_CD:='a';
type_req.REQUEST_DATE:=sysdate;
G_REC_GET_REQUEST(0):=type_req;
type_req.REQUEST_DIV:='b';
type_req.REQUEST_CD:='a';
type_req.REQUEST_DATE:=sysdate;
G_REC_GET_REQUEST(1):=type_req;
type_req.REQUEST_DIV:='c';
type_req.REQUEST_CD:='a';
type_req.REQUEST_DATE:=sysdate;
G_REC_GET_REQUEST(2):=type_req;

type_obj:=GET_REQUEST_OBJ(
G_REC_GET_REQUEST(0).REQUEST_DIV,
G_REC_GET_REQUEST(0).REQUEST_cd,
G_REC_GET_REQUEST(0).REQUEST_DATE);

GET_REQUEST_DATA_OBJ.extend();
GET_REQUEST_DATA_OBJ(1):=type_obj;
type_obj:=GET_REQUEST_OBJ(
G_REC_GET_REQUEST(1).REQUEST_DIV,
G_REC_GET_REQUEST(1).REQUEST_cd,
G_REC_GET_REQUEST(1).REQUEST_DATE);

GET_REQUEST_DATA_OBJ.extend();
GET_REQUEST_DATA_OBJ(2):=type_obj;
type_obj:=GET_REQUEST_OBJ(
G_REC_GET_REQUEST(2).REQUEST_DIV,
G_REC_GET_REQUEST(2).REQUEST_cd,
G_REC_GET_REQUEST(2).REQUEST_DATE);

GET_REQUEST_DATA_OBJ.extend();
GET_REQUEST_DATA_OBJ(3):=type_obj;

dbms_output.put_line(GET_REQUEST_DATA_OBJ(1).REQUEST_DIV);
dbms_output.put_line(GET_REQUEST_DATA_OBJ(2).REQUEST_DIV);
dbms_output.put_line(GET_REQUEST_DATA_OBJ(3).REQUEST_DIV);
end;

--结果
a
b
c
dongdonghe1 2006-12-11
  • 打赏
  • 举报
回复
用pl/sql怎么实现呢?
dongdonghe1 2006-12-11
  • 打赏
  • 举报
回复
是在存储过程里面的,不能用SQL*Plus的Copy命令
tgm78 2006-12-11
  • 打赏
  • 举报
回复
对象建在什么用户下?

可以使用copy命令吧

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧