【发布时间】:2016-07-24 05:55:36
【问题描述】:
我在 excel 中有一个矩阵,在第一列中我有用户名,在第二列和后续列中我有角色名称,如果用户是角色的成员,则为“Y”:
User Role1 Role2 Role3
Jon Y Y
Mary Y Y
我需要将其加载到 Oracle 数据库中。在数据库中,我已经有一个用户表:
UserId Username
1 Jon
2 Mary
我需要获取角色,即 Role1、Role2、Role3 并将其加载到角色表中:
roleId role
1 Role1
2 Role2
3 Role3
然后我需要将角色成员加载到角色映射表中:
UserId RoleId
1 1
1 2
2 2
2 3
到目前为止,我创建了一个具有 Column1、Column2、Column3 属性的表,并使用 SQL 开发人员在其中加载了 Excel 工作表,而没有使用 HEADER!
Column1 Column2 Column3 Column4
User Role1 Role2 Role3
Jon Y Y
Mary Y Y
从这里开始,我尝试使用存储过程循环遍历带有游标的表,并在其中找到 Column1 中的值“用户”,循环遍历该行中的属性并将其添加到角色表等.
但是,我无法在每个 %ROWTYPE 中循环遍历 CURSOR 中的属性。
这是一个好方法吗?如何循环遍历 %ROWTYPE 中的每个属性?
【问题讨论】:
-
这是一个临时流程,还是会经常运行的流程?如果是后者,角色的数量会有所不同吗?
-
@Boneist,角色的数量将相当稳定,但我现在有大约 40 个角色。
-
这会多久运行一次?一次性的?每周?日常的?更频繁?
-
@Boneist,可能每两周一次,角色几乎相同,即不会改变
-
您使用的是什么版本的 Oracle?
标签: sql oracle stored-procedures plsql