IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

UNION中的列关联名称


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2010年9月6日星期一8:31 pm
引用回复

拥有DB2 V8的人可以为我尝试一下吗?

如果要使并集中的列具有名称,则需要为每个列指定一个关联名称。但是,如果我没记错的话,您只需要在工会的第一回合中就可以做到。在版本9中,您必须全力以赴

这有效
码:
从中选择来源(
选择dbname,tsname作为tsname,0作为col1,  'TB' as origin 来自sysibm.systables,其中dbname ='DSNDB06'
全部合并
选择数据库名称,名称为tsname,1作为col1, 'TS'作为sysibm.systablespace的来源,其中dbname如DSNDB06'
) A


这失败了
码:
从中选择来源(
选择dbname,tsname作为tsname,0作为col1,  'TB' as origin 来自sysibm.systables,其中dbname ='DSNDB06'
全部合并
选择数据库名称,名称为tsname,1作为col1, 来自sysibm.systablespace的'TS',其中的dbname如DSNDB06'
) A


有人可以在DB2 V8子系统上尝试第二个,并告诉我它是否失败?谢谢
回到顶部
查看用户资料 发送私信
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2010年9月7日,星期二,下午4:57
引用回复

糟糕,只是注意到我在我的文字DSNDB06之前缺少'。用到处都存在的dbname替换dbname时,必须输入一些错字。

使用DB2 v8的任何人都可以将以下查询粘贴到SPUFI或qmf中,看看它是否给出-206:
码:
从中选择col1(
从sysibm.sysdummy1中选择'x'作为col1
全部合并
选择“ y”         来自sysibm.sysdummy1
) A

码:
COL1在使用的上下文中无效。 SQLCODE = -206,SQLSTATE = 42703,DRIVER = 3.59.81
这就是我在DB2 9中得到的

db2的手册在这件事上还不清楚:
V8手册写道:
UNION和UNION ALL的结果的第n列来自R1和R2的第n列。


V9手册写道:
如果R1的第n列和R2的第n列具有相同的结果列名称,则set操作的结果表的第n列具有相同的结果列名称。否则,未命名set操作结果表的第n列
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表:2010年9月7日,星期二,下午5:12
引用回复

盖伊,

得到了以下错误信息,

码:
DSNT408I SQLCODE = -206,错误: COL1不是插入表的列,   
         更新的表,或从句句中标识的任何表,或不是
         触发台触发栏                         

苏珊斯
回到顶部
查看用户资料 发送私信
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2010年9月7日,星期二,下午5:20
引用回复

好的,谢谢
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2010年9月7日,星期二,下午5:26
引用回复

你有没有尝试过

从中选择A.COL1
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表:2010年9月7日,星期二,下午5:47
引用回复

Dbz,

相同的SQLCODE,
码:
--------- + --------- + --------- + --------- + --------- + --------- + --------- + --------- +
从中选择A.COL1(                                                           
从SYSIBM.SYSDUMMY1选择'X'作为COL1                                       
全联盟                                                                       
选择“ Y”         从SYSIBM.SYSDUMMY1                                       
) A                                                                             
--------- + --------- + --------- + --------- + --------- + --------- + --------- + --------- +
DSNT408I SQLCODE = -206,错误: A.COL1不是插入表的列,   
         更新的表,或从句句中标识的任何表,或不是   
         触发台触发栏                           
DSNT418I SQLSTATE   = 42703 SQLSTATE返回码                               
DSNT415I SQLERRP   = DSNXORSO SQL过程检测错误                   
DSNT416I SQLERRD    = -600 0  0  -1  0 0 SQL诊断信息           
DSNT416I SQLERRD    = X'FFFFFDA8'  X'00000000'  X'00000000'  X'FFFFFFFF'       
         X'00000000' X'00000000'SQL诊断信息                   
--------- + --------- + --------- + --------- + --------- + --------- + --------- + --------- +


谢谢,
苏珊斯
回到顶部
查看用户资料 发送私信
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2010年9月7日,星期二,下午5:49
引用回复

一样。
在两条腿上指定为COL1可以工作:
码:
从中选择col1(
从sysibm.sysdummy1中选择'x'作为col1
全部合并
从sysibm.sysdummy1选择'y'作为col1
) A


我遇到这个问题是因为用户有一个QMF proc,它是批量执行的。
用这样的查询
码:
选择'x1'作为colxyz,从sysibm.sysdummy1选择'x2'
全部合并
从sysibm.sysdummy1中选择'y1','y2'作为colabc

然后将数据保存为表2。
然后第二个查询。现在第二个查询失败。
结果表2过去有称为colxyz的列&colabc,现在它具有称为“ col1”的列&“ col2”(或者他声称,我无法验证他说的话)好吧,我可以验证它具有col1和col2,但没有“曾经的”。

如果有人想在QMF TSO中执行此操作并查看报告中的标题,我将不胜感激。
我的qmf版本是:
引用:
QMF家庭面板
版本9发行版1


我可以告诉用户修改他的查询,但是他不会感激。
这是一个用户编写的查询:5页长的页面有6个并集,列名分布在不同的并集上。
回到顶部
查看用户资料 发送私信
盖伊

高级会员


已加入:2009年8月11日
帖子:1281
地点:比利时

发布发表:2010年9月8日,星期三2:05 pm
引用回复

仅适用于遇到相同问题的任何人:
IBM写道:
PK03946:统一结果列名称的可选支持:

在版本8之前,SQLNAME字段中的结果列名称为
包含UNION的语句的SQL反映了该列
语句中第一个子查询的名称或标签。在
版本8,如果使用标签,则DB2返回标签的标签。
第一个子查询中的列。如果不使用标签,则
结果列名称仅在以下情况下返回:
语句中所有子查询都相同


另外:在V9中,即使使用了标签,
结果列名称仅在以下情况下返回:
语句中所有子查询都相同


修复:不透明的Zparm:UNION_COLNAME_7 = YES

子选择中仍然不允许这样做,但是从describe(QMF使用的列)出来的列名称是UNION的第一个子查询的列名称。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
没有新帖 SYSIBM表中的列名 DB2 5
没有新帖 我们可以在主U中插入重复项吗? DB2 2
没有新帖 转换混合了十六进制,cha ...的列 DB2 5
没有新帖 从内部获取数据集名称... TSO / ISPF 18
没有新帖 需要SQL获得两个最新记录... DB2 10
搜索我们的论坛:


回到顶部