In einem UPDATE
-Anweisung in PL/pgSQL muss der Tabellenname als Literal angegeben werden. Wenn Sie den Tabellennamen und die Spalten dynamisch setzen möchten, sollten Sie das EXECUTE
verwenden Befehl und fügen Sie die Abfragezeichenfolge zusammen ein:
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;
Der USING
-Klausel kann nur zum Ersetzen von Datenwerten verwendet werden, wie oben gezeigt.