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

Pl/pgSQLEXECUTEステートメントにパラメーター$1がありません

    ここでいくつか問題があります。差し迫った問題は次のとおりです。

    これは、$1が原因で発生します EXECUTEに渡すSQL内は、$1と同じではありません。 本体内部。 EXECUTE SQL内の番号付きプレースホルダーは、関数のコンテキストではなく、EXECUTEのコンテキストにあるため、これらのプレースホルダーのEXECUTEにいくつかの引数を指定する必要があります。

    execute '...' using dpol_cia, dpol_tipol, dpol_nupol, dpol_conse, dpol_date;
    --            ^^^^^
    

    動的コマンドの実行> 詳細については、マニュアルを参照してください。

    次の問題は、RETURNS integerが関数から何も返さないことです。 。何を返すつもりかわかりませんが、tableaかもしれません シリアルidがあります あなたが戻りたいこと。もしそうなら、あなたはこのようなものがもっと欲しいです:

    declare
        tabla text := 'dpol' || extract(year from $5::timestamp);
        id integer;
    begin
        execute 'insert into ... values ($1, ...) returning id' into id using dpol_cia, ...;
        --                                        ^^^^^^^^^^^^  ^^^^^^^
        return id;
    end
    

    あなたの機能で。




    1. MySqlクエリを使用して日付の日、月、年を加算および減算する方法

    2. SQLDeveloperで変数の値を出力する

    3. エラー:データソースが接続の確立を拒否しました、サーバーからのメッセージ:接続が多すぎます

    4. ROracleパッケージをWindows7にインストールするにはどうすればよいですか?