Oracle 視圖view

來源:互聯網
上載者:User

標籤:資料   視圖   .com   targe   nbsp   sel   oracle   blank   table   

在我看來,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()

備忘:兩函數對待字串的位置的索引是從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;
View Code

 

Oracle 視圖view

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.