我使用mondrian和JPivot
时遇到问题问题在于,当我将我的应用程序与 Oracle 数据库连接,并且访问钻取表时,所有值都以格式显示2.010,00 指年份 2010 。 只有在我的应用程序与Postgres或SqlServer数据库连接时,Oracle DB才会出现此问题,其值显示为2010.
更多信息:
我的多维数据集有两个维度:CREATION_DATE
和STATUS
,以及一个度量:
(抱歉,我必须更改此处显示的标签,因为下一个xml格式正确)
-SCHEMA name="AAAA" envId="0"-
-Cube name="AAAA" envId="0" cache="true" enabled="true"-
-Table name="MY_FACT_TABLE" alias="MY_FACT_TABLE"-
-Dimension name="FECHA_CREACION" envId="0"-
-Hierarchy name="FECHA_CREACION" hasAll="true" allMemberName="All FECHA_CREACION"-
-Level name="PRO_CREATE_YEAR" column="PRO_CREATE_YEAR" type="Integer" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"-
-Level name="PRO_CREATE_SEM" column="PRO_CREATE_SEM" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"-
-Hierarchy-
-Dimension-
-Dimension name="ESTADO" envId="0"-
-Hierarchy name="ESTADO" hasAll="true" allMemberName="All ESTADO"-
-Level name="PRO_STATUS" column="PRO_STATUS" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never"-
-Hierarchy-
-Dimension-
-Measure name="MEASURE1" column="DW_PRO_ID" aggregator="count" visible="true" formatString="#,###.0" datatype="Numeric" caption="MEASURE1"-
-Cube-
-SCHEMA-
在数据库中,表格 MY_FACT_TABLE 的列 PRO_CREATE_YEAR ,类型为“ INT ”,并且该列中插入的所有值均为2010和2011年。
MEASURE1的钻取表:
PRO_CREATE_YEAR | PRO_CREATE_SEM | PRO_STATUS | MEASURE1
2.010,00 | SEM1 | A | 1,00
2.010,00 | SEM1 | A | 3,00
2.010,00 | SEM1 | A | 2,00
我已经尝试过:
- 将PRO_CREATE_YEAR级别的levelType更改为“TimeYears”
- 将维度类型更改为“TimeDimension”
- 将列PRO_CREATE_YEAR的类型更改为数字,数字(9)
并没有什么变化。
答案 0 :(得分:1)
您应该首先将维度定义为"time" type。有很多examples out there。这将允许您使用MDX的时间函数和计算的全部功能。
您还应该考虑使用level element的nameColumn和captionColumn属性。您可以在Mondrian的schema documentation中获得有关这些内容的更多详细信息。
如果您愿意加倍努力并向蒙德里安社区成员提供您的调查结果,请随时联系mailing list或在tracking system中提交错误报告。< / p>