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 ...
随机推荐
- jquery插件-fullpage.js
1⃣️ 简介 fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 ...
- 使用PeopleSoft 异步操作设置步骤
在手机端调PS接口或同步数据到中间库等程序中经常用到异步操作. 在主菜单>PeopleTools>集成代理程序>集成设置中添加了服务和服务操作后需要设置以下3步才能完成异步程序: 1 ...
- 特来电CMDB应用实践
配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成 ...
- iOS 开发多线程 —— GCD(1)
本文是根据文顶顶老师的博客学习总结而来,如有不妥之处,还望指出.http://www.cnblogs.com/wendingding/p/3807716.html 概览: /* 纯c语言,提供了非常多 ...
- RecyclerView打造通用的万能Adapter
既然想做到通用那么现在摆在面前的就三个问题:数据怎么办?布局怎么办? 绑定怎么办?.数据决定采用泛型,布局打算直接构造传递,绑定显示效果肯定就只能回传. 1 基本改造 数据决定采用泛型,布局打算直接构 ...
- CSS 小结笔记之em
1.为什么使用em em也是css中的一种单位,和px类似.很多人会疑惑为什么有了px之后还要使用em,而且em使用起来相对于px来讲比较麻烦. em主要是应用于弹性布局,下面给出一个小栗子说明em的 ...
- 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...
- LeetCode题解之Univalued Binary Tree
1.题目描述 2.问题分析 遍历一遍树,然后将所有节点的数值放入到一个set中,最后检查set中元素的个数是否为1. 3.代码 bool isUnivalTree(TreeNode* root) { ...
- leveldb源码分析--BloomFilter
bloomfilter是leveldb中的一大性能利器,所以为了文章的表现完整性这里新启这么一篇文章.leveldb中的bloomfilter的实现在bloom.cc中,是一个较为简单的实现,所以就不 ...
- 处理 Windows 虚拟机的计划内维护通知
Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 更新包括如下更改:修补托管环境或升级以及解除硬件授权. 大多数此类更新在执行时不会影响托管的虚拟机. 但是,也会存在更新产 ...