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

ORA-21700:オブジェクトが存在しないか、ODP.NETから呼び出された入力パラメータとして連想配列の削除のマークが付けられています

    数日間グーグルした後、私は次のようにコードを変更しました:

    CREATE OR REPLACE PACKAGE Support_Data_Types AS
                TYPE ttDate            IS TABLE OF DATE
    END Support_Data_Types;
    PROCEDURE GetData
    (
        tabDates IN SUPPORT_DATA_TYPES.TTDATE,
    )
    AS
        v_temp SUPPORT_DATA_TYPES.TTDATE:= tabDates;  -- assigned the parameter to a temporary variable
    BEGIN
        SELECT count(*) INTO n FROM table(v_temp);
    END GetData;
    

    私がした唯一のことは、かなり冗長に見えるv_tempを使用することです。しかし、それは機能します。ここでこの記事を検索したので、この変更を行いました...それは言及しました:

    ただし、12.1以降では、TABLE演算子内で直接テーブル関数を呼び出すことはできないことに注意してください。 PL / SQLで呼び出し、結果を変数に割り当ててから、TABLE内の変数を参照する必要があります。

    私の場合(私は12.2を使用しています)では状況は異なりますが、問題は解決しました。




    1. SQLで文字列を連結する方法

    2. ADODBとOracleでxas(...)を使用できないのはなぜですか?

    3. Oracleでテーブルを更新する方法

    4. SQLServerのMINおよびMAX集計関数