web-dev-qa-db-fra.com

Comment échapper à un mot réservé dans Oracle?

Dans TSQL, je pourrais utiliser quelque chose comme Select [table] from tablename pour sélectionner une colonne nommée "table".

Comment puis-je faire cela pour les mots réservés dans Oracle?

Edit: J'ai essayé les accolades, les guillemets, les guillemets simples et les citations arrières, ils ne fonctionnent pas ...

Pour plus de clarté, j'ai une colonne que quelqu'un nommée commenta. Comme il s’agit d’un mot réservé, Oracle essaie de le sélectionner avec hésitation et échoue lors de l’analyse de la requête. J'ai essayé de sélectionner "comment" dans tablename mais cela n'a pas fonctionné. Je vais vérifier et reviens.

120
Spence

À partir d’une recherche rapide, Oracle semble utiliser des guillemets doubles (", par exemple "table") et nécessite apparemment la casse correcte - Alors que, pour toute personne intéressée, MySQL utilise par défaut des backticks (`), sauf s’il est configuré pour utiliser des guillemets doubles pour des raisons de compatibilité.

173
eyelidlessness

Normalement, Oracle requiert des guillemets doubles pour délimiter le nom des identificateurs dans les instructions SQL, par exemple.

SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';

Cependant, il permet gracieusement d'omettre les guillemets, auquel cas il convertit discrètement l'identifiant en majuscule:

SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';

se convertit en interne à quelque chose comme:

SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';
32
Jeffrey Kemp

les guillemets doubles fonctionnaient dans Oracle lorsque le mot-clé était l'un des noms de colonne.

par exemple:

select t."size" from table t 
8
Suresh G

Oracle utilise des guillemets, mais vous devrez probablement placer le nom de l'objet en majuscule, par exemple. "TABLE". Par défaut, si vous créez un objet sans guillemets, par exemple,.

CREATE TABLE table AS ...

Oracle créerait l'objet en tant que majuscule. Cependant, le référencement n'est pas sensible à la casse, sauf si vous utilisez des guillemets!

3