sql >> データベース >  >> RDS >> Oracle

Oracleの匿名TABLEまたはVARRAYタイプ

    SYSスキーマを明示的に参照することを恐れていない場合は、いくつかあります。これが私がよく使うものです(odcivarchar2list 多くのメモリを消費するので、それほど多くはありません。文字列の場合、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> 
    

    ただし、これらがニーズに十分でない場合は、このクエリを実行してさらに検索してください:

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

    もちろん、この結果はデー​​タベースごとに異なります。たとえば、私のデータベースのコレクションの多くはXDBによって所有されており、すべてのシステムにXDBがインストールされているわけではありません。この回答の上部にリストした4つは、9iR2以降(およびおそらく初期)のすべてのデータベースで使用できるはずですが、以前のバージョンでは常に文書化されているわけではありません。

    「ALL_COLL_TYPESは、適切なタイプを見つけるためのさらに優れた辞書ビューのようです」

    それは良い点です。また、COLL_TYPEでフィルタリングして、VARRAYを選別することもできます。そのビューは10gに導入されましたが、ALL_TYPESは9iで使用可能でした。ほとんどのOracleと同様に、バージョンが遅いほど、より多くの機能があります。



    1. PostgreSQLと認証システムの統合

    2. MySQLで月と年でグループ化

    3. 修正:「演算子が存在しません:整数|| PostgreSQLの「整数」

    4. SQL Server(T-SQL)でクエリ結果を電子メールで送信するときに列ヘッダーを削除する方法