PDA

View Full Version : Cubo com Inline Table



maxdanielton
06-10-2009, 02:36 PM
Boa tarde, estou querendo criar uma dimensão com InlineTable porém está com um problema. Abaixo está o código que criei:


<Dimension type="StandardDimension" foreignKey="ID_TIPO_CATEGORIZACAO" name="tipoCategorizacao">
<Hierarchy hasAll="true" primaryKey="ID_TIPOCATEGORIZACAO">
<InlineTable alias="TIPOCATEGORIZACAO">
<ColumnDefs>
<ColumnDef name="ID" type="Numeric"/>
<ColumnDef name="NOME" type="String"/>
</ColumnDefs>
<Rows>
<Row>
<Value column="ID">1</Value>
<Value column="NOME">Nao Procede</Value>
</Row>
<Row>
<Value column="ID">2</Value>
<Value column="NOME">Nao Conformidade Potencial</Value>
</Row>
<Row>
<Value column="ID">3</Value>
<Value column="NOME">Nao Conformidade Real</Value>
</Row>
<Row>
<Value column="ID">4</Value>
<Value column="NOME">Sugestao de Melhoria</Value>
</Row>
<Row>
<Value column="ID">5</Value>
<Value column="NOME">Observacao</Value>
</Row>
</Rows>
</InlineTable>
<Level name="NOME" column="id" nameColumn="NOME" uniqueMembers="true"/>
</Hierarchy>
</Dimension>quando seleciono meu cubo na aplicação ele aplicação ao fazer o select dos valores ele dá um erro de sintaxe,


[MONDRIAN] 15:13:00 DEBUG RolapUtil:193 - SqlMemberSource.getLevelMemberCount: done executing sql [select
count(*) as "c0"
from
(select distinct
"TIPOCATEGORIZACAO"."id" as "c0"
from
(SELECT * FROM (VALUES (1, 'Nao Procede'), (2, 'Nao Conformidade Potencial'), (3, 'Nao Conformidade Real'),
(4, 'Sugestao de Melhoria'), (5, 'Observacao')) AS "t" ("ID", "NOME")) as "TIPOCATEGORIZACAO") as "init"], exec+fetch 0 ms, 0 rows

[MONDRIAN] 15:13:00 DEBUG sql:144 - 10: , failed (java.sql.SQLException: Incorrect syntax near the keyword 'VALUES'.) Alguem saberia me dizer o que está errado? desde já agradeço

pmalves
06-11-2009, 05:48 AM
Nao uses isso, só dá problemas. As tabelas de agregação tb não funcinam com inline tables. Cria uma dimensão

Maria Roldan
06-12-2009, 07:10 AM
Max,
O qual engine você utiliza? Com Oracle eu utilizei muitas vezes inline tables; problema nenhum. Mas eu não consegui utilizá-las com SQL-Server.
http://forums.pentaho.org/showthread.php?t=63932
Mondrian não reconhecia a sintaxe para inline tables com SQL Server. Não sei si o problema ja foi resolvido.
mc

maxdanielton
06-15-2009, 07:27 AM
Bom dia, desculpe a demora ao responder, eu estou utilizando SQL Server, eu estou tentando utilizar inline table para criar uma dimensão com dados genéricos para ser utilizado no cubo, como vocês me recomendaram a não utilizar isso, existe outra forma de faze-lo?

Obrigado pela ajuda.

Maria Roldan
06-16-2009, 09:22 PM
Sim, claro. Criando uma pequena tabela com os dados que você tenta colocar na "inline table". Logo, você utiliza a tabela como una dimensão comum.
mc

maxdanielton
06-17-2009, 08:07 AM
Essa inline table serve para listar apenas os dados que eu quero de uma tabela? pois eu pensei que servia para emular uma tabela com os dados que eu criei, ou seja essa tabela não existe, para funcionar deve existir?

Maria Roldan
06-17-2009, 08:37 AM
Você está certo: As inline tables servem para emular tabelas. Mas dado que com SQL Server não funcionam, você tem que crià-las.

maxdanielton
06-17-2009, 09:08 AM
ah sim entendi, vou tentar essa solução, obrigado pelas informações.

maxdanielton
06-17-2009, 09:26 AM
Maria, você já tentou com sql server 2008?

Maria Roldan
06-17-2009, 09:35 AM
Não, só com SQL Server 2000.
É um projeto acabado; eu não acredito que tenha que experimentar com uma outra versão do engine.

maxdanielton
06-17-2009, 09:43 AM
Entendo, é porque pesquisando sobre essa sintaxe reparei que na documentação do SQL Server2008 possui exemplos parecidos com esse select que o mondrian monta já para 2000 não encontrei, eu também estou utilizando o 2000, aí me veio essa idéia.

maxdanielton
06-17-2009, 01:20 PM
Boa tarde a todos, fiz um teste e achei interessante postar, testei esse codigo sql que o mondrian monta no SQL Server 2008 e funcionou, já no 2005 e 2000 ocorreu o mesmo erro de sintaxe.