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

検索可能な配列をSQLデータベースフィールドに保存する

    Oracleでは、NESTED TABLEを使用して配列を列に格納できます。 s(またはVARRAY s):

    SQLフィドル

    Oracle11gR2スキーマのセットアップ

    CREATE TYPE String_Table IS TABLE OF VARCHAR2(100)
    /
    
    CREATE TABLE test (
      id     NUMBER(10,0),
      col1   VARCHAR2(10),
      array1 String_Table
    ) NESTED TABLE array1 STORE AS test__array1
    /
    
    INSERT INTO test ( id, col1, array1 )
      SELECT 1, 'Row1', String_Table( 'A', 'B', 'C' ) FROM DUAL UNION ALL
      SELECT 2, 'Row2', String_Table( 'C', 'D', 'E' ) FROM DUAL
    /
    

    クエリ1 :次に、次のような収集操作を使用できます:MEMBER OF コレクション内のアイテムを見つけるため。およびMULTISET SUBMULTISET OFのような演算子 別のコレクションのすべてのアイテムを含むコレクションを検索します。

    SELECT *
    FROM   test
    WHERE  'B' MEMBER OF array1
    OR     String_Table( 'E', 'C' ) SUBMULTISET OF array1
    

    結果

    | ID | COL1 | ARRAY1 |
    |----|------|--------|
    |  1 | Row1 |  A,B,C |
    |  2 | Row2 |  C,D,E |
    

    Javaを使用している場合は、Java配列をPreparedStatementのバインドパラメータとして渡すことができます。 またはCallableStatement 。この例としては、こちら およびこちら 。




    1. ユーザー登録時にサブドメインを自動作成すると、新しいWebサイトが作成されますか、それともWebサイトの外観が表示されますか?

    2. MySQLに一連の画像を保存するための最良の方法は何ですか?

    3. SQLServerの大文字と小文字を区別する変数

    4. hdfsからoracleエラーへのsqoopエクスポート