Compartilhar via


Identificadores entre aspas

Em uma instrução SQL, os identificadores que contêm caracteres especiais ou palavras-chave correspondentes devem ser incluídos em caracteres de aspas de identificador, os identificadores entre esses caracteres são conhecidos como identificadores entre aspas (também conhecidos como identificadores delimitados no SQL-92). Por exemplo, o identificador de Contas a Pagar é colocado entre aspas na seguinte instrução SELECT:

SELECT * FROM "Accounts Payable"  

A razão para colocar identificadores entre aspas é tornar a instrução analisável. Por exemplo, se Contas a Pagar não estivesse entre aspas na instrução anterior, o analisador presumiria que havia duas tabelas, Contas e A Pagar e retornaria um erro de sintaxe por elas não estarem separadas por vírgula. O caractere de aspas do identificador é específico do driver e é recuperado com a opção SQL_IDENTIFIER_QUOTE_CHAR em SQLGetInfo. As listas de caracteres especiais e de palavras-chave são recuperadas com as opções SQL_SPECIAL_CHARACTERS e SQL_KEYWORDS em SQLGetInfo.

Para segurança, os aplicativos interoperáveis geralmente colocam entre aspas todos os identificadores, exceto aqueles para pseudocolunas, como a coluna ROWID no Oracle. SQLSpecialColumns retorna uma lista de pseudocolunas. Além disso, se houver restrições específicas do aplicativo quanto a em que local caracteres especiais podem aparecer em um nome de objeto, é melhor que aplicativos interoperáveis não usem caracteres especiais nessas posições.