在我看来,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的更多相关文章

  1. Oracle视图View

  2. Oracle 学习笔记 11 -- 视图 (VIEW)

    本次必须学习一个全新的概念-- 视图 (VIEW).在前面的笔记中曾提到过,数据对象包含:表.视图.序列.索引和同义词.前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析. 视图是通 ...

  3. Oracle视图分类及各种操作讲解(超级好文)

    目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1  创建简单视图   3.2  创建连接视图  3.2.1 连接视图定义  3.2.2 创建连接视图  3.2.3 ...

  4. Oracle -----视图

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  5. Oracle视图详解

    转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本 ...

  6. oracle视图总结

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  7. oracle视图总结(转)

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  8. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

  9. ORACLE视图添加备注

    ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...

随机推荐

  1. ThinkPHP_5对数据库的CURL操作

    Db::query();Db::execute(); Db::table()->select(); 所有数据,二维数组,结果不存在时返回空数组Db::table->find(); 一条数据 ...

  2. 对HTML的理解及常用标签使用介绍--来自我的百度前端技术学院的笔记

    HTML是什么,HTML5是什么? ——HTML:超文本标记语言,一种用于创建网页的标准标记语言: ——HTML5:目前最新的HTML标准,包含新的元素.属性.行为,基于它们的功能特征将他们分成不同的 ...

  3. SAP FI/CO 基本概念

    每一个SAP从业者都对这些概念不陌生,理解透了这些概念,对SAP的业务体系构架才能有明确地认识. 1.集团(client)的概念:是SAP中的最高等级:每一个集团建立主数据库. 2.公司(Compan ...

  4. 防范跨站脚本攻击(XXS)的关键手段

    1:加强对提交信息和页面显示信息的过滤,让非法提交内容无处施展: 2:让存储在cookie中的sessionid 无法被js 读取到. 如今的xss 相比网上很多资料中,在技术上已经发生了很大变化.由 ...

  5. T-SQL的timestamp类型实际应用

    目录 0x00 适用场景 0x01 问题描述 0x02 字节数组 0x03 Base64编码 0x04 其实没那么麻烦 0x05 回顾 0x00 适用场景 1. 前端: JavaScript 2. 后 ...

  6. mongodb的搭建

    1,    vi /etc/yum.repos.d/mongodb-org-3.2.repo     2,   添加如下内容   [mongodb-org-3.2] name=MongoDB Repo ...

  7. 向磁盘写入数据提示:No spac left on device通过df -h查看磁盘空间,发现没满,解决方法

    初步判断应该有两种情况:一种是block满了,另一种情况就是inode耗尽了. 首先df -i 查看一下是否耗尽inode/block数量. 虚拟一块磁盘并格式化: dd if=/dev/zero o ...

  8. python基础学习6----字符串操作

    一.重复输出字符串 print('hello'*20)#输出20个hello 二.通过索引获取字符串中字符 print('helloworld'[2:])#输出lloworld 三.关键字 in pr ...

  9. MySQL主从复制半同步复制原理及搭建

    在MySQL5.5之前的版本中,MySQL的复制是异步复制,主库和从库的数据之间存在一定的延迟,比如网络故障等各种原因,这样子容易存在隐患就是:当在主库写入一个事务成功后并提交了,但是由于从库延迟没有 ...

  10. SpringBoot部署

    Spring Boot 部署到服务器 jar 形式 1.打包 若我们在新建Spring Boot 项目的时候,选择打包方式是 jar,则我们只需要用 mvn package 就可以进行打包. 2.运行 ...