sql – Oracle中匿名TABLE/VARRAY類型示例詳解
前言
本文主要介紹的是關(guān)于sql Oracle匿名TABLE/VARRAY類型的相關(guān)內(nèi)容,在Oracle中,我有時會創(chuàng)建一些這樣的結(jié)構(gòu)
SELECT * FROM TABLE(STRINGS('a', 'b', 'c'))
SELECT * FROM TABLE(NUMBERS(1, 2, 3))
顯然,我可以為上述聲明我自己的類型.我可以在TABLE和VARRAY之間進(jìn)行選擇.例如:
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
但是我可能會有更復(fù)雜的例子,我真的需要一個TABLE / VARRAY類型.那么如果我的SQL在一個未知的系統(tǒng)上運行,我不能創(chuàng)建類型,因為我可能沒有必要的資助?
所以我的問題是:Oracle是否知道任何Oracle實例上可用的“匿名”TABLE / VARRAY類型?類似于Postgres / H2 / HSQLDB的簡單ARRAY類型?
更新:我主要從Java運行這個SQL,如果這是相關(guān)的.不需要向我解釋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 /
當(dāng)然,這個結(jié)果會因數(shù)據(jù)庫而異.例如,我的數(shù)據(jù)庫中的很多關(guān)系都是由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進(jìn)行過濾,以便了解VARRAY.該視圖被引入10g,而ALL_TYPES在9i上可用.和大部分的Oracle一樣,版本越晚,它的功能就越多.
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Oracle查詢sql錯誤信息的控制和定位
- Oracle基礎(chǔ):通過sqlplus執(zhí)行sql語句后的結(jié)果進(jìn)行判斷
- Oracle固定執(zhí)行計劃之SQL PROFILE概要文件詳解
- Oracle帶輸入輸出參數(shù)存儲過程(包括sql分頁功能)
- Python3連接SQLServer、Oracle、MySql的方法
- PHP基于pdo的數(shù)據(jù)庫操作類【可支持mysql、sqlserver及oracle】
- oracle sql語言模糊查詢--通配符like的使用教程詳解
- 使用SQL語句查詢MySQL,SQLServer,Oracle所有數(shù)據(jù)庫名和表名,字段名
- 安裝SQL Server 2016出錯提示:需要安裝oracle JRE7 更新 51(64位)或更高版本問題的解決方法
- Oracle基礎(chǔ)多條sql執(zhí)行在中間的語句出現(xiàn)錯誤時的控制方式
相關(guān)文章
oracle 創(chuàng)建字段自增長實現(xiàn)方式
這篇文章主要介紹了oracle 創(chuàng)建字段自增長實現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下2016-10-10
plsql 連接oracle數(shù)據(jù)庫詳細(xì)配置的方法步驟
這篇文章主要介紹了plsql 連接oracle數(shù)據(jù)庫詳細(xì)配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
oracle中exists和not?exists用法舉例詳解
這篇文章主要介紹了oracle中exists和not?exists用法的相關(guān)資料,EXISTS用于檢測子查詢是否返回任何行,而NOT?EXISTS則檢測子查詢是否不返回任何行,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Oracle數(shù)據(jù)庫的備份與恢復(fù)案例詳解
這篇文章介紹了Oracle數(shù)據(jù)庫的備份與恢復(fù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-11-11
生產(chǎn)環(huán)境Oracle undo表空間管理實踐
這篇文章主要介紹了生產(chǎn)環(huán)境Oracle undo表空間管理實踐,Oracle 數(shù)據(jù)庫有一種維護(hù)信息的方法,用于回滾或撤消對數(shù)據(jù)庫的更改,下面文章分享更多的相關(guān)資料需要的小伙伴可以參考一下2022-03-03
Oracle如何批量將表中字段名全轉(zhuǎn)換為大寫(利用簡單存儲過程)
這篇文章主要給大家介紹了關(guān)于Oracle如何批量將表中字段名全轉(zhuǎn)換為大寫的相關(guān)資料,主要利用的就是一個簡單的存儲過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

