欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql – Oracle中匿名TABLE/VARRAY類型示例詳解

 更新時間:2018年10月15日 11:40:28   作者:代碼日志  
這篇文章主要給大家介紹了關于Oracle中匿名TABLE/VARRAY類型的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用oracle具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

本文主要介紹的是關于sql Oracle匿名TABLE/VARRAY類型的相關內(nèi)容,在Oracle中,我有時會創(chuàng)建一些這樣的結構

SELECT * FROM TABLE(STRINGS('a', 'b', 'c'))
SELECT * FROM TABLE(NUMBERS(1, 2, 3))

顯然,我可以為上述聲明我自己的類型.我可以在TABLE和VARRAY之間進行選擇.例如:

CREATE TYPE STRINGS AS TABLE OF VARCHAR2(100);
CREATE TYPE NUMBERS AS VARRAY(100) OF NUMBER(10);

在這種特殊情況下,另一個解決方案是寫東西

SELECT 'a' FROM DUAL UNION ALL
SELECT 'b' FROM DUAL UNION ALL
SELECT 'c' FROM DUAL

但是我可能會有更復雜的例子,我真的需要一個TABLE / VARRAY類型.那么如果我的SQL在一個未知的系統(tǒng)上運行,我不能創(chuàng)建類型,因為我可能沒有必要的資助?

所以我的問題是:Oracle是否知道任何Oracle實例上可用的“匿名”TABLE / VARRAY類型?類似于Postgres / H2 / HSQLDB的簡單ARRAY類型?

更新:我主要從Java運行這個SQL,如果這是相關的.不需要向我解釋PL / SQL,我只是在尋找匿名SQL數(shù)組類型(即“匿名”獨立存儲類型).如果根本不存在,答案是否定的

最佳答案

提供你不要害怕明確引用SYS模式有幾個.這里有一些我經(jīng)常使用(odcivarchar2list不太好,因為它嚼了很多內(nèi)存:對于我喜歡

dbms_debug_vc2coll的字符串).
SQL> desc sys.odcinumberlist
 sys.odcinumberlist VARRAY(32767) OF NUMBER

SQL> desc sys.odcivarchar2list
 sys.odcivarchar2list VARRAY(32767) OF VARCHAR2(4000)

SQL> desc sys.ODCIDATELIST
 sys.ODCIDATELIST VARRAY(32767) OF DATE

SQL> desc sys.dbms_debug_vc2coll
 sys.dbms_debug_vc2coll TABLE OF VARCHAR2(1000)

SQL> 

但是,如果這些不足以滿足您的需求,請運行此查詢以查找更多內(nèi)容:

select type_name
  , owner
from all_types
where typecode = 'COLLECTION'
and owner != user
/

當然,這個結果會因數(shù)據(jù)庫而異.例如,我的數(shù)據(jù)庫中的很多關系都是由XDB擁有的,并不是每個系統(tǒng)都會安裝它.盡管在早期版本中并不總是記錄這個答案,但是在9iR2(也許是早期版本)之后,我在每個數(shù)據(jù)庫上都可以看到這個答案的頂部的四個.

“Note that ALL_COLL_TYPES seems to be an even better dictionary view
to find appropriate types”

那是個很好的觀點.我們也可以對COLL_TYPE進行過濾,以便了解VARRAY.該視圖被引入10g,而ALL_TYPES在9i上可用.和大部分的Oracle一樣,版本越晚,它的功能就越多.

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

最新評論