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

動的クエリのv_MONTHの識別子エラーが無効です

    SQL文を文字列として作成したため、PLSQLエンジンは変数名(リテラル文字列の一部)の代わりにはなりません。したがって、SQLエンジンは文字列'V_MONTH'を認識しますが、その名前の列がないため、識別子は無効です。 。動的SQLを使用する場合は、自分で値の置換を行う必要があります。同じことが他の変数にも当てはまります。だから:

      EXECUTE IMMEDIATE UTL_LMS.FORMAT_MESSAGE(
      'UPDATE /*+ index(a LEDGER_STAT_DLY_IDX02_IN) */ LEDGER_STAT_DLY A
          SET %s =  NVL(%s,0) + NVL(%s ,0)
        WHERE IDENTITY_CODE =  NVL(%s ,0)
          AND YEAR_S =  NVL(%s ,0)
          AND MONTH_NO = NVL(%s ,0)'
         ,V_TARGET_COLUMN, V_TARGET_COLUMN ,V_AMOUNT,V_IDENTITY_CODE,V_YEAR_S,V_MONTH);
    

    必要なフォーマット変換を行う必要がある場合もあります。




    1. MySQLから特定のテーブルのみをダンプする方法は?

    2. SQL varchar内の特定のサブストリングの出現回数をどのようにカウントしますか?

    3. phpユーザーIDの割り当てが機能しない

    4. mysqlデータベースからJSON配列を構築する方法