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.