报表迁移到生产环境时,报错ORA-00918: column ambiguously defined

报表从开发环境迁移到生产环境时,报表报错UDA-SQL-0107 “prepare”操作期间发生常规异常。ORA-00918: column ambiguously defined。如图:

1.bmp


具体报错信息如下:


我用数据包进行了测试,发现不分组汇总时,报表不报错,


分组汇总后,运行一次不报错,再运行一次就报错:


在查询里设置sql with 为否也没用。另外我的FM数据源 查询处理选项 设置的是仅限本地。
另外我的FM模型里和机构维表做了关系如下图:


另外,FM的查询里我用中文 重命名了,没有重复的中文名。还是不行,不知道是我的模型有问题还是迁移环境导致的?我在开发环境时是没有问题的。
参与20

13同行回答

BI_vpBI_vp研发工程师北京泛鹏天地科技有限公司
我的问题已经解决,在这里贴一下原因和解决方案,供遇到这个问题的朋友参考。问题原因:    环境描述:Oracle数据库字符集为UTF8,内容库类型和字符集为DB2-UTF8,Cognos10.1.1服务器用户字符集GBK;    原因描述:在Cognos服务器上安装的32位客户端,在读取utf8的Ora...显示全部
我的问题已经解决,在这里贴一下原因和解决方案,供遇到这个问题的朋友参考。
问题原因:
    环境描述:Oracle数据库字符集为UTF8,内容库类型和字符集为DB2-UTF8,Cognos10.1.1服务器用户字符集GBK;
    原因描述:在Cognos服务器上安装的32位客户端,在读取utf8的Oracle中的中文时,由于字符集不匹配,导致中文乱码,在Cognos用户内,用sqlplus登录,执行一个Select '中文' from dual;就能发现中文都变成了"?",由此,导致我Cognos模型中所有用中文定义的列别名全部都是问号,才出现Oracle报错为定义列、模糊列、列名相同等错误。
解决方案:
     将Cognos用户的环境变量字符集改为utf8,重启Cognos收起
软件开发 · 2015-05-07
浏览1247
白帝舞剑行白帝舞剑行IT顾问IBM
ambiguously的意思是有歧义的,检查下某个列名是否有冲突。显示全部
ambiguously的意思是有歧义的,检查下某个列名是否有冲突。收起
软件开发 · 2015-05-07
浏览1139
fhqlpgkfhqlpgk软件开发工程师南天信息公司
ORA-00918: column ambiguously definedoracle的错误代码,意思说列定义模糊建议:分组汇总后,看看cognos生成的SQL,再取SQL去oracle里面运行一下~~看看是否能找出模糊列显示全部
ORA-00918: column ambiguously defined
oracle的错误代码,意思说列定义模糊
建议:分组汇总后,看看cognos生成的SQL,再取SQL去oracle里面运行一下~~看看是否能找出模糊列收起
互联网服务 · 2015-05-07
浏览1240
BabyBiggerBabyBigger商业智能工程师保密
回复 11# BI_vp    多谢兄弟的分享!~我的也是这个问题。cognos服务器字符集错误。显示全部
回复 11# BI_vp


   多谢兄弟的分享!~我的也是这个问题。cognos服务器字符集错误。收起
保险 · 2015-06-29
浏览1485
ren1991621ren1991621数据库运维工程师大数据
貌似是权限的问题吧显示全部
貌似是权限的问题吧收起
软件开发 · 2015-06-06
浏览1506
小新小新软件开发工程师xx
以前遇到过 ,由于时间紧,都是重新拖,要么列表名重命名为英文,感谢上述解答显示全部
以前遇到过 ,由于时间紧,都是重新拖,要么列表名重命名为英文,感谢上述解答收起
银行 · 2015-06-04
浏览1482
BI_vpBI_vp研发工程师北京泛鹏天地科技有限公司
同问,遇到此问题,莫名其妙。Cognos自动生成的sql应该是表名.字段名,为什么还会出现字段模糊。不理解显示全部
同问,遇到此问题,莫名其妙。
Cognos自动生成的sql应该是表名.字段名,为什么还会出现字段模糊。不理解收起
软件开发 · 2015-05-20
浏览1603
BabyBiggerBabyBigger商业智能工程师保密
回复 7# strongsun    你说在哪儿写sql的时候?FM里从表里拖过去的字段不都是这样的么?   select xx.a            xx.b            xx.c    from &n...显示全部
回复 7# strongsun


   你说在哪儿写sql的时候?FM里从表里拖过去的字段不都是这样的么?   select xx.a
            xx.b
            xx.c
    from  aa xx

  fm里都是这样的格式写的。

我是这样写的,我觉得在RS里把字段名改为中文比较麻烦,我就在FM里给每个字段取了中文别名:

    select xx.a   统计方式            xx.b  案件数量
            xx.c  出险次数
    from  aa xx


这样省的在RS里改列名的标签为文本格式,在改成中文了。

这个方式在开发环境没有问题,迁移到生产就报错了。开发和生产都是linux。收起
保险 · 2015-05-08
浏览1626
BabyBiggerBabyBigger商业智能工程师保密
回复 6# magaochen521    兄弟,还是不行啊。显示全部
回复 6# magaochen521


   兄弟,还是不行啊。收起
保险 · 2015-05-08
浏览1664
strongsunstrongsun商业智能工程师带你未来
一般是sql出的问题,请在写字段名的时候,以表名.字段名,这样显示全部
一般是sql出的问题,请在写字段名的时候,以表名.字段名,这样收起
互联网服务 · 2015-05-08
浏览1713

提问者

BabyBigger
商业智能工程师保密

相关问题

相关资料

问题状态

  • 发布时间:2015-05-07
  • 关注会员:1 人
  • 问题浏览:10557
  • 最近回答:2015-06-29
  • X社区推广