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

Oracleパイプライン関数

    これは、コードが出力タイプにスカラーを割り当てるために発生します。割り当てターゲットに一致するように変数をキャストする必要があります。だから:

       SELECT type_struct(counter)
        INTO rec
        FROM dual;
    

    パイプライン関数は必ずしも必要ではありません。 table()を使用できます コレクションを返す関数を使用します。

    これははるかに単純な実装であり、必要なUDTは1つだけです。

    CREATE TYPE tp_numbers AS TABLE OF number;
    /
    CREATE OR REPLACE FUNCTION gen_nums (na NUMBER, nb NUMBER)
    RETURN tp_numbers 
    IS
        return_value tp_numbers ;
    BEGIN
        SELECT (na + level) - 1 
        bulk collect    INTO return_value  
        FROM dual
        connect by level <= nb;
    
        RETURN return_value ;
    END gen_nums;
    /
    


    1. PostgreSQLで月の最後の日を取得する

    2. 文字が最初に出現した後に文字列を切り取ります

    3. DISTINCTでIN句の代わりにEXISTSを使用してクエリを最適化することは可能ですか?

    4. MySQLでロック待機タイムアウト超過エラーを修正する方法