Usando palavra reservada timestamp como um nome de campo (Firebird 2,5)
-
05-07-2019 - |
Pergunta
Eu estou estendendo a camada de dados de uma aplicação existente para trabalhar com o Firebird 2.5, além de MSSQL e SQLite, mas eu ter atingido um obstáculo.
Eu tenho um campo chamado TimeStamp que armazena os dados / hora como tipo timestamp. Isso funciona bem sob MSSQL e SQLite onde o tipo é datetime, mas cai sob Firebird. O seguinte SQL:
SELECT SysTrnId,'TimeStamp' from "TRANSACTIONS"
aparentemente funciona, mas o campo TimeStamp é o retorno como nome do campo "constante" e os conteúdos são o "timestamp" text
É possível fazer isso no Firebird, ou eu vou ter que mudar o nome do campo e alterar o código nas outras camadas de dados.
Solução
O caractere de escape firebird é a dupla citação "
. Note que no firebird se você tiver um campo que você tem que escapar com aspas duplas, também se torna sensível a maiúsculas. Então, se você já declarou seu campo como TimeStamp
, então select "TIMESTAMP" ...
falhará com um campo não encontrou o erro.
Outras dicas
Eu não tenho idéia se ele funciona, mas você já tentou aspas em torno de "TimeStamp", aspas simples geralmente indicam uma string constante.
Saudações
K