Dans une UPDATE dans PL/pgSQL, le nom de la table doit être donné sous forme littérale. Si vous souhaitez définir dynamiquement le nom de la table et les colonnes, vous devez utiliser le EXECUTE commande et collez la chaîne de requête ensemble :
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;
Le USING La clause ne peut être utilisée que pour remplacer des valeurs de données, comme indiqué ci-dessus.