2015-05-06 100 views
2

我试着显示ROWID虚列,但奇怪的事情发生, 这是我的查询选择ROWID甲骨文

select rowid, rowid||'', rowid r from dual 

输出:

ROWID||''   R 
AAAAECAABAAAAgiAAA AAAAECAABAAAAgiAAA 

那么为什么不能显示rowid没有别名或不连接起来还有别的东西?任何解释? 我使用了Toad和Oracle 10g。

+4

我认为这是一个TOAD内部处理问题。尝试用简单的SQLplus –

+0

@Wernfried我没有其他查询工具,但我尝试过使用SQLFiddle.com,而且更糟糕的是,在查询'rowid'时出现错误消息,如果您确定,请尝试使用SQLplus并且不接受您的答案。 – 54l3d

+0

SQL Developer也可能有点奇怪 - 将值包装为别名长度(或没有别名的5),而没有列设置。 SQL \ * Plus很好。 –

回答

2

seems to be a Toad setting隐藏虚列:

在数据网格中,鼠标右键单击 - 选择列

启用 'ROWID'

你也有 -

蟾蜍 - 查看 - 选项 - 数据网格 - 数据 - 显示 - '显示ROWID 可编辑网格'

它显示在SQL * Plus,SQL Developer和其他客户端中。

+0

它可能也是OCI相关的。 OCI隐含地将ROWID作为第0列返回,即使查询没有返回它。当查询本身返回ROWID时,可能TOAD有点困惑。 – ibre5041

+0

@ ibre5041 - 我认为该设置是为了抑制显示隐含的OCI列;这是可以理解的,但如果您明确将其包含在您的选择列表中,则无助于此。 –