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

プリペアドステートメントでCOLLECT()を使用すると、ORA-00932:inconsistent datatypes:expected --got-が発生するのはなぜですか?

    ユーザーによる掘り下げのおかげで、ついにこの問題の解決策が得られました。問題はプレースホルダーではありませんでした。 VirtualBoxイメージのプレースホルダーなしで機能する理由はわかりません。いいえ、問題はCOLLECT()にありました 。収集されている両方の値を特定のタイプにキャストする必要があるようです。および 結果の配列も、事前定義された配列データ型にキャストする必要があります。私のコードがカスタム配列タイプを持っているのはたまたまです:

    CREATE TYPE sqitch_array AS varray(1024) OF VARCHAR2(512);
    

    したがって、COLLECT()をキャストすることで、クエリを機能させることができます。 そのように:

    CAST(COLLECT(CAST(t.tags as VARCHAR2(512))) AS sqitch_array)
    



    1. Salesforceドライバーは一括アクションをサポートしていますか?

    2. グループ化せずにSUMを作成する方法

    3. 整合性制約違反:1452子行を追加または更新できません:

    4. ビット フィールドから true/false カウントを 2 つの別々の列に取得する方法