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

PLS-00201:識別子'R_CUR'は動的SQLで宣言する必要があります

    エラーはここで有効です。 execute immediateを見ると ステートメントは、解決されて実行されると、beginで始まります。 ブロック。その開始ブロックでr_curの宣言 範囲外であるため、問題が発生します。 r_curを作成する必要があります あなたの宣言もブロックを開始します。コメント部分をご覧ください。

    FOR j IN r.FIRST .. r.LAST
          LOOP
             v_if_statement :=
                    'IF r_cur('||i||').'
                 || r (j)
                 || ' '
                 || 'IS NOT NULL'
                 || ' '
                 || 'THEN :var:=''true'';'
                 || ' '
                 || 'dbms_output.put_line(''inside stmt'');'
                 || 'END IF;';
    
               ----**Here when the begin block gets resolved the r_cur decalration is needed.**     
                v_sql_statement := 'BEGIN ' || v_if_statement || ' END;';
    
                EXECUTE IMMEDIATE v_sql_statement USING OUT var;
    
            DBMS_OUTPUT.put_line ('var : ' || var);
    



    1. エラー:パラメータタイプは、従来のASPのADODBコードではサポートされていません

    2. URLで渡された値を使用してデータベースにクエリを実行し、mod_rewriteを使用してクエリの結果をURLに書き込むことは可能ですか?

    3. SQLAlchemy + postgreSQLを使用して接続数を減らす方法は?

    4. 複数の言語でテキストを保存するためのデータベーススキーマを設計するにはどうすればよいですか?