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.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...