Criando view materializada

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

olá,

Estou tentando criar uma view materializada e está dando o erro ORA-00905: missing keyword. O que pode estar acontecendo?

Detalhe: em um banco com versão 11g, não dá erro. Em um com versão 10G, dá este erro.
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Cara,
o melhor é postar sua view.
Mas talvez sua view usa algumas funções específicas da versão 11.
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

O comando que está sendo executado é este:

Selecionar tudo

CREATE MATERIALIZED VIEW "VWM_VIEW" 
 ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT)
  TABLESPACE "..." 
  BUILD IMMEDIATE
  USING INDEX 
  REFRESH COMPLETE ON DEMAND
  USING DEFAULT LOCAL ROLLBACK SEGMENT
  USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
  AS SELECT ....
  FROM TAB1@LINK z, TAB2@LINK b, TAB3@LINK l
 WHERE z.cod=...
 AND z.cod_b=b.cod
 AND z.cod_l=l.cod;
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Não sei se você precisa de todas essas opções em sua MV mas vamos lá.

Dividi aqui a parte problemática:

Selecionar tudo

USING DEFAULT LOCAL ROLLBACK SEGMENT
USING ENFORCED CONSTRAINTS 
DISABLE QUERY REWRITE
No 10 não dá para criar a MV com esses 2 USING. Se tentar assim funciona:

Selecionar tudo

USING DEFAULT LOCAL ROLLBACK SEGMENT ENFORCED CONSTRAINTS 
DISABLE QUERY REWRITE
não sei lhe dizer porque, talvez alteraram levemente a sintaxe do 10 para o 11.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

Robson Costa,

Para evitar problemas, é uma boa prática não incluir no comando as cláusulas de armazenamento do BD. Execute-o como no exemplo abaixo:

Selecionar tudo

CREATE MATERIALIZED VIEW "VWM_VIEW" 
BUILD IMMEDIATE
USING INDEX 
REFRESH COMPLETE ON DEMAND
USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
AS SELECT ....
FROM TAB1@LINK z, TAB2@LINK b, TAB3@LINK l
WHERE z.cod=...
AND z.cod_b=b.cod
AND z.cod_l=l.cod;
[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 16 visitantes