Oracle 视图view
在我看来,oracle的视图就是用于将多个表的关联查询结果映射成【临时表】,视图与系统表中的数据是实时对应的。
我们可以像操作表的查询一样来操作视图查询。
视图写法:
CREATE OR REPLACE FORCE VIEW V_TEM
(
ID,
NAME
)
AS
SELECT ID,NAME FROM TABLE
项目中的一个案例,将一个自关联的结构表(行转多列)体现组织结构:市-区县-网格-乡镇-渠道
用到的知识点:
1、SYS_CONNECT_BY_PATH(字段,间隔符) 示例:SYS_CONNECT_BY_PATH(ID, '|')
2、SUBSTR()
3、INSTR()
备注:两函数SUBSTR()、INSTR()对待字符串的位置的索引是从1开始的(填写0和1都是代表从第1个位置开始)
sql代码:
DROP VIEW TLS.V_CHANNEL_PATH; CREATE OR REPLACE FORCE VIEW TLS.V_CHANNEL_PATH
(
ID,
PARENT_ID,
NAME,
ID_LEVEL,
TYPE,
IN_USE,
STATUS_TIME,
LEVEL_ID,
BANK_NAME,
ACCOUNT_NAME,
ACCOUNT_NO,
GROUP_ID,
CLASS,
CHANNEL_TEL,
QX_CHANNEL_ID,
PQ_CHANNEL_ID,
XZ_CHANNEL_ID,
QX_CHANNEL_NAME,
PQ_CHANNEL_NAME,
XZ_CHANNEL_NAME
)
AS
SELECT ID,
a.parent_id,
NAME,
id_level,
TYPE,
in_use,
status_time,
level_id,
bank_name,
account_name,
account_no,
GROUP_ID,
CLASS,
channel_tel,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
1)
+ 1,
INSTR (path_id,
'|',
1,
2)
- INSTR (path_id,
'|',
1,
1)
- 1)
qx_channel_id,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
2)
+ 1,
INSTR (path_id,
'|',
1,
3)
- INSTR (path_id,
'|',
1,
2)
- 1)
pq_channel_id,
SUBSTR (a.path_id,
INSTR (path_id,
'|',
1,
3)
+ 1,
INSTR (path_id,
'|',
1,
4)
- INSTR (path_id,
'|',
1,
3)
- 1)
xz_channel_id,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
1)
+ 1,
INSTR (path_name,
'|',
1,
2)
- INSTR (path_name,
'|',
1,
1)
- 1)
qx_channel_name,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
2)
+ 1,
INSTR (path_name,
'|',
1,
3)
- INSTR (path_name,
'|',
1,
2)
- 1)
pq_channel_name,
SUBSTR (a.path_name,
INSTR (path_name,
'|',
1,
3)
+ 1,
INSTR (path_name,
'|',
1,
4)
- INSTR (path_name,
'|',
1,
3)
- 1)
xz_channel_name
FROM ( SELECT a.*,
SUBSTR (SYS_CONNECT_BY_PATH (ID, '|'), 2) || '|' path_id,
SUBSTR (SYS_CONNECT_BY_PATH (NAME, '|'), 2) || '|'
path_name
FROM tl_channel a
START WITH ID = 1
CONNECT BY PRIOR ID = parent_id) a;
Oracle 视图view的更多相关文章
- Oracle视图View
- Oracle 学习笔记 11 -- 视图 (VIEW)
本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...
- Oracle视图分类及各种操作讲解(超级好文)
目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1 创建简单视图 3.2 创建连接视图 3.2.1 连接视图定义 3.2.2 创建连接视图 3.2.3 ...
- Oracle -----视图
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- Oracle视图详解
转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本 ...
- oracle视图总结
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- oracle视图总结(转)
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- ORACLE 视图的 with check option
ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...
- ORACLE视图添加备注
ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...
随机推荐
- 5月9日——vue渲染过程中{{xxx}}显示
异常显示的原因: 这是由于浏览器的渲染机制导致的,浏览器是从头到尾 如果你的js引用在底部,那么浏览器会先加载dom此时,你用于渲染的{{}}识别符,因为还没读到该识别符对应的js文件,所以会被解析 ...
- js弹窗 js弹出DIV,并使整个页面背景变暗
1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: # ...
- Linux服务器开启ssh服务,实现ssh远程登陆!
最近在学linux,使用ssh远程登陆linux,记录下来! 首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/s ...
- linux下使用sublime-text写coffee遇到的编译问题
Traceback (most recent call last): File "/opt/sublime_text/sublime_plugin.py", line 556, i ...
- oop(Object Oriented Programming)
嗯,昨天忙了一天没来及发,过年啊,打扫啊,什么搽窗户啊,拖地啊,整理柜子啊,什么乱七八糟的都有,就是一个字,忙. 好了,废话也不多说,把自己学到的放上来吧.嗯,说什么好呢,就说原型链啊 原型对象 每个 ...
- hihocoder [Offer收割]编程练习赛12 [1495] ---- 矩形分割
原题链接 矩形分割 算法分析: 解决该题要用到"并查集"的思想. 这里有一篇不错的博客介绍并查集: 并查集(Union-Find)算法介绍 记 int total=N*M,这里会有 ...
- MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明
MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...
- android踩坑记录之view.setVisiblity()
问题 在某次做悬浮侧边栏的时候,遇到了一个问题:我用windowManager创建的悬浮侧边栏.点击中心view展开菜单,再次点击则隐藏菜单,如此简单的一个需求,却遇到了奇怪的问题,我没有对view的 ...
- Android--仿一号店货物详情轮播图动画效果
还不是很完全,目前只能点中间图片才能位移,图片外的其他区域没有..(属性动画),对了,图片加载用得是facebook的一款android图片加载库,感觉非常NB啊,完爆一切. 1.先看布局 <? ...
- web调试-禁止/清空chrome页面缓存
Chrome会对页面缓存,web页面调试的时候,后端修改页面.js之后,刷新页面经常不生效,非常不方便. 有一些小技巧可以解决该问题. 技巧一: 开发者工具-setting/设置,可以关闭缓存. 开发 ...