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

Oracle ストアド プロシージャは、必要なパッケージの例で配列 (テーブル) パラメーターを受け入れる

    TABLE を呼び出すには SQL オブジェクトが必要です SELECT からの演算子 .以下は小さな例です (9iR2):

    SQL> CREATE TYPE table_number is TABLE OF NUMBER;
      2  /
    
    Type created.
    
    SQL> SELECT * FROM TABLE(table_number(1,2,3));
    
    COLUMN_VALUE
    ------------
               1
               2
               3
      

    代わりにここで関数を使用できます (私の TYPE はまだパッケージの外で定義されていることに注意してください):

    SQL> CREATE OR REPLACE PACKAGE pkg AS
      2     FUNCTION f RETURN table_number;
      3  END;
      4  /
    
    Package created.
    
    SQL> CREATE OR REPLACE PACKAGE BODY pkg AS
      2     FUNCTION f RETURN table_number IS
      3     BEGIN
      4        RETURN table_number(4,5,6);
      5     END;
      6  END;
      7  /
    
    Package body created.
    
    SQL> SELECT * FROM table(pkg.f);
    
    COLUMN_VALUE
    ------------
               4
               5
               6
      


    1. possible_keysを使用しないSELECTステートメント

    2. 重複している場合は、行の値を空の文字列に置き換えます

    3. SQL ServerのLOG()の例

    4. mysql問題に挿入