加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:46:25 所属栏目:MsSql教程 来源:网络整理
导读:我尝试在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
我尝试在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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读