UPDATE
で PL / pgSQLのステートメントでは、テーブル名をリテラルとして指定する必要があります。テーブル名と列を動的に設定する場合は、EXECUTE
を使用する必要があります コマンドを実行し、クエリ文字列を一緒に貼り付けます:
EXECUTE 'UPDATE ' || quote_ident(r.relname) ||
' SET ' || quote_ident(r.cols_list[1]) || ' = $1, ' ||
quote_ident(r.cols_list[2]) || ' = $2' ||
' WHERE ' || quote_ident(r.cols_list[1]) || ' = $3 AND ' ||
quote_ident(r.cols_list[2]) || ' = $4'
USING ncicd9, ncdesc, ocicd9, ocdesc;
USING
上記のように、句はデータ値の置換にのみ使用できます。