岗位表:s_position
pid pname state parent
1 测试1 0 2/1
2 测试2 0 5/3/2
3 a 0 3
4 b 1
5 c 0
parent 说明: 用于岗位继承 如果值为本身id或空代表不继承,如果:例如5/3/2 代表继承了5,3的权限,parent 长度不固定问题: 如何查出所有的被继承的岗位id?
pid pname state parent
1 测试1 0 2/1
2 测试2 0 5/3/2
3 a 0 3
4 b 1
5 c 0
parent 说明: 用于岗位继承 如果值为本身id或空代表不继承,如果:例如5/3/2 代表继承了5,3的权限,parent 长度不固定问题: 如何查出所有的被继承的岗位id?
解决方案 »
- 创建一个过程,但是有编译错误,请请指教
- oracle 如何查询一个月的数据
- 关于job的问题 老是报并非所有变量都已经绑定 各位帮帮忙啊 在线等咯
- java与Oracle
- oracle的pl/sql developer的使用手册???
- oms在windows2003上无法启动的问题,我已经找了多资料了,但就是没法解决
- oracle9i number类型的精度问题
- oracle安装错误
- 我上网搜索过,但找不到答案,也我已经问了很多人,这问题难道没有人能回答一下吗?
- ora-12640: TNS Authentication adapter initalization failed
- 报错“缺少右括号”
- 请教:数据集显示方式重新排列
(select parent from s_position where pid=??)
||'/','/'|| t.pid||'/')>0
;
岗位id1,..岗位idn 都是被继承的岗位id
岗位是拥有权限的,我需要查到被继承的岗位的权限,就是得先拆分parent 字段的的数据获得所有被继承岗位id
(select parent from s_position b where b.pid=??)
||'/','/'|| a.pid||'/')>0 and a.pid<>b.pid;
SQL> select * from s_position;
PID PNAME STATE PARENT
--- ---------- ---------- --------------------
1 测试1 0 2/1
2 测试2 0 5/3/2
3 a 0 3
4 b 1
5 c 0
SQL>
SQL> SELECT *
2 FROM S_POSITION A
3 WHERE INSTR('/' || (SELECT SUBSTR(PARENT, 1, INSTR(PARENT, '/', -1, 1))
4 FROM S_POSITION B
5 WHERE B.PID = 2),
6 '/' || A.PID || '/') > 0;
PID PNAME STATE PARENT
--- ---------- ---------- --------------------
3 a 0 3
5 c 0
SQL>