如何把一个表中的字段赋值给一个自定义表类型的字段

leehom_young 2012-02-25 10:07:49
在plsql中,定义一个过程,在过程中,需要将多个表的查询的记录赋值给另外一个表,该表是自定义类型的表。
比如有这样一条查询语句:SQL 为select a.empno,b.name from emp a,empt b where a.emptno=b.emptno;
自定义的表为
TYPE TEST_EMP IS RECORD(
empno EMP.empno%TYPE, --个人编号
ename EMP.ename%TYPE, --部门名称
);
TYPE MY_EMP IS TABLE OF TEST_EMP INDEX BY VARCHAR2(30);

换句话就是如何将上面的sql执行的结果给MY_EMP。

希望大侠们帮忙!
...全文
270 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingchaoyan 2012-02-26
  • 打赏
  • 举报
回复
.count 属性 看看不就知道了
我心飞翔 2012-02-25
  • 打赏
  • 举报
回复
请参考:

CREATE OR REPLACE PROCEDURE MyProce
IS
-- 定义光标
CURSOR cur IS SELECT a.empno,b.name from emp a,empt b where a.emptno=b.emptno;
-- 定义记录类型
TYPE TEST_EMP IS RECORD(empno EMP.empno%TYPE, ename EMP.ename%TYPE);
-- 定义记录变量
rec TEST_EMP;
-- 定义数组类型
YPE MY_EMP IS TABLE OF TEST_EMP INDEX BY VARCHAR2(30);
-- 定义数组变量
MyEmpArray MY_EMP;
BEGIN
FOR r IN cur LOOP
MyEmpArray(r.empno) := r; -- 保存到数组中
--...其它处理
END LOOP;
END;

forgetsam 2012-02-25
  • 打赏
  • 举报
回复
insert into select
leehom_young 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luiseradl 的回复:]
请参考:

SQL code


CREATE OR REPLACE PROCEDURE MyProce
IS
-- 定义光标
CURSOR cur IS SELECT a.empno,b.name from emp a,empt b where a.emptno=b.emptno;
-- 定义记录类型
TYPE TEST_EMP IS RECO……
[/Quote]
我想判断MyEmpArray是否有数据,如何判断,谢谢!

17,086

社区成员

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

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