微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SELECT语句中的列别名不适用于SQuirrel SQL Firebird

我尝试在SELECT语句中使用SQuirrel sql 3.4 Firebird 1.5驱动程序JDBC Jaybird 2.2.[0 | 1](JVM 1.7.0_03)添加列别名,但不起作用.列别名显示为原始名称的列.在另一个工具(DBExpert)中,相同的语句工作正常.

语句:SELECT column1 AS alias1,column2 FROM table;
Squirrelsql中的列列名称:column1 – column2
DBExpert中的结果列名称:alias1 – column2

尝试添加’和“围绕别名,但也不工作.

有人有想法?

编辑:我将JDBC Jaybird驱动程序更新为2.2.1版本(9月/ 30日发布),问题依然存在.

编辑2:问题修复!

这个问题是由Squirrel sql认偏好引起的.

要修复它,请转到“文件” – > “全局首选项”,在“数据类型控件”选项卡中,找到“常规(适用于所有类型)”,并标记组合框“使用列标签而不是结果标题中的列名称”.

见截图:http://i1-win.softpedia-static.com/screenshots/SQuirrel-SQL-Client_4.png?1345342622

请享用.

解决方法

问题是由于JDBC规范(至少在历史上)的混乱以及Jaybird在结果集元数据中报告为columnNames和columnLabels的变化.据我所知JDBC 2.0和更早版本中,columnName和columnLabel之间的区别并没有很好的定义,所以在几乎所有情况下,getColumnName()返回的值与getColumnLabel()相同(如果指定了AS别名).

使用JDBC 3.0做出了更清晰的区分:columnName是表中的基础列的名称(如果有),则columnLabel是指定的AS-alias,否则为columnName. Jaybird 2.1.6和更早版本用于为getColumnLabel()和getColumnName()(即columnLabel)返回相同的值,这在Jaybird 2.2中已更改.

显然松鼠认为columnName的非JDBC兼容选项,而不是columnLabel.正如你已经发现的:有一个选项可以让它使用columnLabel.另一个选项是使用Jaybird 2.2.1或更高版本,并添加连接属性columnLabelForName = true.

原文地址:https://www.jb51.cc/mssql/81335.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐