Firebird字段名称转义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebird字段名称转义相关的知识,希望对你有一定的参考价值。
此查询有效:
SELECT r.ID FROM SomeTable r
但接下来给了我Token unknown - "ID"
错误:
SELECT r."ID" FROM SomeTable r
为什么这样,以及在Firebird中正确转义字段名称的方法是什么?
答案
您正在使用方言1数据库(或者您已使用方言1连接作为连接方言)。 Dialect 1不支持带引号的标识符,因此在Firebird存在之前已被弃用(在1999/2000年它仍然是Interbase 6 beta版)。
在方言1中,双引号用于字符串(char / varchar),因此解析器不会将"ID"
视为对象名称,而是将其视为字符串,因此它会抛出令牌未知错误,因为它需要一个对象名称。
如果这是一个新数据库,则使用方言3数据库重新启动。如果这是现有数据库,那么您真的应该考虑将其迁移到方言3中。请参阅Interbase 6入门手册中的“将数据库迁移到方言3”(可从http://www.firebirdsql.org/en/reference-manuals/获取,它位于页面末尾链接的完整集中) )。
另一答案
我在firebird2.5上检查了这个问题,它没有重复。
它只在旧的Firebird1.5
服务器上发现。
所以,正确的解决方案是服务器升级到2.5,错误数量少:)
以上是关于Firebird字段名称转义的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 dbExpress 从 Firebird 获取表描述(字段和类型)