Partager via


Identificateurs entre guillemets

Dans une instruction SQL, les identificateurs contenant des caractères spéciaux ou des mots clés de correspondance doivent être placés entre guillemets d’identificateur ; les identificateurs placés entre ces caractères sont appelés identificateurs entre guillemets (également appelés identificateurs délimités dans SQL-92). Par exemple, l’identificateur Comptes payables est cité dans l’instruction SELECT suivante :

SELECT * FROM "Accounts Payable"  

La raison pour laquelle les identificateurs de guillemets est d’effectuer l’analyse de l’instruction. Par exemple, si les comptes payables n’ont pas été cités dans l’instruction précédente, l’analyseur suppose qu’il y avait deux tables, Comptes et Payable, et retourner une erreur de syntaxe qu’elles n’étaient pas séparées par une virgule. Le caractère de guillemet d’identificateur est spécifique au pilote et est récupéré avec l’option SQL_IDENTIFIER_QUOTE_CHAR dans SQLGetInfo. Les listes de caractères spéciaux et de mots clés sont récupérées avec les options SQL_SPECIAL_CHARACTERS et SQL_KEYWORDS dans SQLGetInfo.

Pour être sécurisée, les applications interopérables citent souvent tous les identificateurs, à l’exception des pseudo-colonnes, comme la colonne ROWID dans Oracle. SQLSpecialColumns retourne une liste de pseudo-colonnes. En outre, s’il existe des restrictions spécifiques à l’application sur l’emplacement où des caractères spéciaux peuvent apparaître dans un nom d’objet, il est préférable que les applications interopérables n’utilisent pas de caractères spéciaux dans ces positions.