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

レコード数の選択中にストアド プロシージャで動的クエリを実行できない

    動的ステートメントの最後にセミコロンを付けないでください。これはステートメントの区切り記号であり、単一のステートメントには関連していないか、有効ではありません。いずれにせよ、動的に実行できる SQL ステートメントは 1 つだけです (匿名の PL/SQL ブロックに複数のステートメントを入れない限り)。

    あなたの to も間違った場所にあります:

    TEMP_1 :='select count ('|| E ||' ) from ' || C;DBMS_OUTPUT.PUT_LINE ('STARTED');DBMS_OUTPUT.PUT_LINE (TEMP_1);EXECUTE IMMEDIATE TEMP_1 INTO Count_source;  

    プロシージャの引数を直接使用できるのに、なぜわざわざローカル変数を用意して割り当てる必要があるのか​​ わかりません。これにより、ステートメントが読みやすくなると思います:

    TEMP_1 :='select count ('|| COLUMN_SOURCE ||' ) from ' || TABLE_SOURCE;  


    1. sql_modeが空白であるにもかかわらず、sql_mode=only_full_group_byと互換性のないストアドプロシージャの生成

    2. Codeigniter:order句の列'id'があいまいです

    3. データベース設計/正規化構造には、AND、OR、オプションの要素、およびそれらの関係が含まれている必要があります

    4. 座標によるクエリに時間がかかりすぎる-最適化するオプション?