(本文档仅供参考)
问题
如下图所示,基于Oracle数据源新建SQL数据集,在SQL数据集中定义了5个字段,但检测输出字段的时候只有两个字段,将此SQL语句放置数据库中执行,也是有5个字段的,这是什么原因呢?
原因
该问题是由于部分字段用了中文的逗号【,】进行分隔。
Oracle 10g之后可以支持中文逗号作为查询分隔符了,详细可查看此网络文档:https://blog.csdn.net/itmyhome1990/article/details/106849914 ,所以当数据库是Oracle 10g之后的,是可以按照中文的逗号分隔字段的,因此在数据库中执行SQL语句,字段数输出正常。
而在Smartbi产品中,对SQL数据集进行解析时,是用的英文的逗号【,】进行分隔,所以就会将SQL语句中的“名称, 数量, 城市 , 区域”识别成一个字段了,因此与实际书写的字段数会出现不对应的情况。
综上,将SQL数据集中的中文逗号改成英文的逗号去分隔字段,即可正确的输出对应的字段数。