Compartir vía


Identificadores entre comillas

En una instrucción SQL, los identificadores que contienen caracteres especiales o palabras clave de coincidencia deben incluirse entre comillas de identificador; los identificadores incluidos en dichos caracteres se conocen como identificadores entre comillas (también conocidos como identificadores delimitados en SQL-92). Por ejemplo, el identificador Accounts Payable está entre comillas en la siguiente instrucción SELECT:

SELECT * FROM "Accounts Payable"  

El motivo para entrecomillar identificadores es hacer que la instrucción se pueda analizar. Por ejemplo, si Accounts Payable no se entrecomillase en la instrucción anterior, el analizador asumiría que había dos tablas, Accounts y Payable, y devolvería un error de sintaxis para indicar que no estaban separados por una coma. El carácter de comillas de identificador es específico del controlador y se recupera con la opción SQL_IDENTIFIER_QUOTE_CHAR en SQLGetInfo. Las listas de caracteres especiales y palabras clave se recuperan con las opciones SQL_SPECIAL_CHARACTERS y SQL_KEYWORDS en SQLGetInfo.

Para garantizar la protección, las aplicaciones interoperables suelen citar todos los identificadores, excepto los de pseudocolumnas, como la columna ROWID en Oracle. SQLSpecialColumns devuelve una lista de pseudocolumnas. Además, si hay restricciones específicas de la aplicación sobre dónde pueden aparecer caracteres especiales en un nombre de objeto, es mejor que las aplicaciones interoperables no usen caracteres especiales en esas posiciones.