Re: [oracle_br] falha ao criar índice

2014-03-18 Por tôpico Fabio Prado
Expressões regulares são muito poderosas para realizar qq tipo de pesquisa
textual, mas o uso delas realmente degrada a performance do SQL. Para mais
informações sugiro a leitura do artigo
http://www.fabioprado.net/2010/10/expressoes-regulares.html. Nele vc
encontrará a referência de um Testador de expressão regular q já facilitou
meu trabalho vários vezes.

[]s

Fábio Prado


Em 12 de março de 2014 14:05, Yuri Menon  escreveu:

>
>
> Poxa vida, mesmo criando o índice e calculando estatísticas o desempenho
> caiu drasticamente.
>
> Antes eu realizava a consulta SQL com substr(integrachave,-5) e ia que era
> uma beleza, depois que passei a usar esse regexp_replace ficou complicado.
>
>
> Em 12 de março de 2014 13:49, angelo  escreveu:
>
>>
>>
>> Acho que rolou um golpe de vista aí.. vc pensa que colou certo e nao
>> colou.. na verdade, colou o clipboard antigo do email anterior
>>
>> pra tira a duvida, cola os 2 codigos num bloco de notas e vê aonde tem
>> aspas a mais...
>>
>>
>>
>>
>> 2014-03-12 13:44 GMT-03:00 Yuri Menon :
>>
>>
>>>
>>> Muito obrigado senhores!
>>> O Fábio Prado matou a charada!
>>> Retirei as aspas duplas e funcionou.
>>> Estranho é que antes fiz um ctrl+c e ctrl+v na dica do Andre Santos mas
>>> não sei porque não funcionou, aparentemente é igual a dica do Fabio.
>>>
>>>
>>> Em 12 de março de 2014 13:30, Fabio Prado  escreveu:
>>>
>>>

 Yuri,

   Execute o código abaixo, que se o nome da tabela e coluna estiverem
 corretos, tenho certeza de que irá funcionar:

 declare
cmd varchar2(400);
 begin
cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
 CPARTIDA(regexp_replace(INTEGRACHAVE,''[A-Z]''))';
EXECUTE IMMEDIATE cmd;
 END;


 Att,

 Fábio Prado
 http://www.fabioprado.net


 Em 12 de março de 2014 13:16,  escreveu:


>
> Na verdade, olhando por cima nem o nome da tabela nem o nome do índice
> nem o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse 
> erro
> é espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...
>
>  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
> criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
> que é problemas de 's/string mal-definida, e não dando certo aí a gente 
> tem
> um caso reproduzível, e talvez executando diretamente vc receba uma msg de
> erro melhor...
>
>   []s
>
> Chiappa
>



 --
 *Fábio Prado*
 
 www.fabioprado.net
 "Compartilhando conhecimentos e treinando profissionais em Bancos de
 Dados Oracle"



>>>
>>
>  
>



-- 
*Fábio Prado*

www.fabioprado.net
"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados
Oracle"


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Poxa vida, mesmo criando o índice e calculando estatísticas o desempenho
caiu drasticamente.

Antes eu realizava a consulta SQL com substr(integrachave,-5) e ia que era
uma beleza, depois que passei a usar esse regexp_replace ficou complicado.


Em 12 de março de 2014 13:49, angelo  escreveu:

>
>
> Acho que rolou um golpe de vista aí.. vc pensa que colou certo e nao
> colou.. na verdade, colou o clipboard antigo do email anterior
>
> pra tira a duvida, cola os 2 codigos num bloco de notas e vê aonde tem
> aspas a mais...
>
>
>
>
> 2014-03-12 13:44 GMT-03:00 Yuri Menon :
>
>
>>
>> Muito obrigado senhores!
>> O Fábio Prado matou a charada!
>> Retirei as aspas duplas e funcionou.
>> Estranho é que antes fiz um ctrl+c e ctrl+v na dica do Andre Santos mas
>> não sei porque não funcionou, aparentemente é igual a dica do Fabio.
>>
>>
>> Em 12 de março de 2014 13:30, Fabio Prado  escreveu:
>>
>>
>>>
>>> Yuri,
>>>
>>>   Execute o código abaixo, que se o nome da tabela e coluna estiverem
>>> corretos, tenho certeza de que irá funcionar:
>>>
>>> declare
>>>cmd varchar2(400);
>>> begin
>>>cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
>>> CPARTIDA(regexp_replace(INTEGRACHAVE,''[A-Z]''))';
>>>EXECUTE IMMEDIATE cmd;
>>> END;
>>>
>>>
>>> Att,
>>>
>>> Fábio Prado
>>> http://www.fabioprado.net
>>>
>>>
>>> Em 12 de março de 2014 13:16,  escreveu:
>>>
>>>

 Na verdade, olhando por cima nem o nome da tabela nem o nome do índice
 nem o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro
 é espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...

  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
 criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
 que é problemas de 's/string mal-definida, e não dando certo aí a gente tem
 um caso reproduzível, e talvez executando diretamente vc receba uma msg de
 erro melhor...

   []s

 Chiappa

>>>
>>>
>>>
>>> --
>>> *Fábio Prado*
>>> 
>>> www.fabioprado.net
>>> "Compartilhando conhecimentos e treinando profissionais em Bancos de
>>> Dados Oracle"
>>>
>>>
>>>
>>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico angelo
Acho que rolou um golpe de vista aí.. vc pensa que colou certo e nao
colou.. na verdade, colou o clipboard antigo do email anterior

pra tira a duvida, cola os 2 codigos num bloco de notas e vê aonde tem
aspas a mais...




2014-03-12 13:44 GMT-03:00 Yuri Menon :

>
>
> Muito obrigado senhores!
> O Fábio Prado matou a charada!
> Retirei as aspas duplas e funcionou.
> Estranho é que antes fiz um ctrl+c e ctrl+v na dica do Andre Santos mas
> não sei porque não funcionou, aparentemente é igual a dica do Fabio.
>
>
> Em 12 de março de 2014 13:30, Fabio Prado  escreveu:
>
>
>>
>> Yuri,
>>
>>   Execute o código abaixo, que se o nome da tabela e coluna estiverem
>> corretos, tenho certeza de que irá funcionar:
>>
>> declare
>>cmd varchar2(400);
>> begin
>>cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
>> CPARTIDA(regexp_replace(INTEGRACHAVE,''[A-Z]''))';
>>EXECUTE IMMEDIATE cmd;
>> END;
>>
>>
>> Att,
>>
>> Fábio Prado
>> http://www.fabioprado.net
>>
>>
>> Em 12 de março de 2014 13:16,  escreveu:
>>
>>
>>>
>>> Na verdade, olhando por cima nem o nome da tabela nem o nome do índice
>>> nem o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro
>>> é espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...
>>>
>>>  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
>>> criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
>>> que é problemas de 's/string mal-definida, e não dando certo aí a gente tem
>>> um caso reproduzível, e talvez executando diretamente vc receba uma msg de
>>> erro melhor...
>>>
>>>   []s
>>>
>>> Chiappa
>>>
>>
>>
>>
>> --
>> *Fábio Prado*
>> 
>> www.fabioprado.net
>> "Compartilhando conhecimentos e treinando profissionais em Bancos de
>> Dados Oracle"
>>
>>
>>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Muito obrigado senhores!
O Fábio Prado matou a charada!
Retirei as aspas duplas e funcionou.
Estranho é que antes fiz um ctrl+c e ctrl+v na dica do Andre Santos mas não
sei porque não funcionou, aparentemente é igual a dica do Fabio.


Em 12 de março de 2014 13:30, Fabio Prado  escreveu:

>
>
> Yuri,
>
>   Execute o código abaixo, que se o nome da tabela e coluna estiverem
> corretos, tenho certeza de que irá funcionar:
>
> declare
>cmd varchar2(400);
> begin
>cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
> CPARTIDA(regexp_replace(INTEGRACHAVE,''[A-Z]''))';
>EXECUTE IMMEDIATE cmd;
> END;
>
>
> Att,
>
> Fábio Prado
> http://www.fabioprado.net
>
>
> Em 12 de março de 2014 13:16,  escreveu:
>
>
>>
>> Na verdade, olhando por cima nem o nome da tabela nem o nome do índice
>> nem o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro
>> é espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...
>>
>>  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
>> criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
>> que é problemas de 's/string mal-definida, e não dando certo aí a gente tem
>> um caso reproduzível, e talvez executando diretamente vc receba uma msg de
>> erro melhor...
>>
>>   []s
>>
>> Chiappa
>>
>
>
>
> --
> *Fábio Prado*
> 
> www.fabioprado.net
> "Compartilhando conhecimentos e treinando profissionais em Bancos de Dados
> Oracle"
>
>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Fabio Prado
Yuri,

  Execute o código abaixo, que se o nome da tabela e coluna estiverem
corretos, tenho certeza de que irá funcionar:

declare
   cmd varchar2(400);
begin
   cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA(regexp_replace(INTEGRACHAVE,''[A-Z]''))';
   EXECUTE IMMEDIATE cmd;
END;


Att,

Fábio Prado
http://www.fabioprado.net


Em 12 de março de 2014 13:16,  escreveu:

>
>
> Na verdade, olhando por cima nem o nome da tabela nem o nome do índice nem
> o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro é
> espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...
>
>  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
> criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
> que é problemas de 's/string mal-definida, e não dando certo aí a gente tem
> um caso reproduzível, e talvez executando diretamente vc receba uma msg de
> erro melhor...
>
>   []s
>
> Chiappa
>  
>



-- 
*Fábio Prado*

www.fabioprado.net
"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados
Oracle"


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Ok Chiappa, encontrei também o seguinte artigo:
http://www.dba-oracle.com/t_regular_expressions_tuning_index.htm

acredito que vai me ajudar também!

Obrigado!


Em 12 de março de 2014 13:16,  escreveu:

>
>
> Na verdade, olhando por cima nem o nome da tabela nem o nome do índice nem
> o nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro é
> espúrio e que vc ainda tá tendo problemas com 's desbalanceadas ...
>
>  PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de
> criação antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe
> que é problemas de 's/string mal-definida, e não dando certo aí a gente tem
> um caso reproduzível, e talvez executando diretamente vc receba uma msg de
> erro melhor...
>
>   []s
>
> Chiappa
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico jlchiappa
Na verdade, olhando por cima nem o nome da tabela nem o nome do índice nem o 
nome da coluna ultrapassam 30 caracteres, então eu ACHO que esse erro é espúrio 
e que vc ainda tá tendo problemas com 's desbalanceadas ...

 PLZ vai pro sqlplus e ** DIGITE ** na mão, diretamente, o comando de criação 
antes de tentar enfiar ele em bloco dinâmico : dando certo vc sabe que é 
problemas de 's/string mal-definida, e não dando certo aí a gente tem um caso 
reproduzível, e talvez executando diretamente vc receba uma msg de erro 
melhor...
 
  []s
  
Chiappa

RES: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Duilio Bruniera
Yuri , tente usar chr(39) no lugar de ficar duplicando aspas fica mais
simples

Tipo assim:

select CHR(39)|| 'teste' || CHR(39) from dual;

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
nome de Yuri Menon
Enviada em: quarta-feira, 12 de março de 2014 11:41
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] falha ao criar índice

 

  

Erro ao iniciar na linha 106 no comando

declare

cmd varchar2(400);

begin

cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';

EXECUTE IMMEDIATE cmd;

END;

Relatório de erro:

ORA-06550: linha 4, coluna 88:

PLS-00103: Encontrado o símbolo "[" quando um dos seguintes símbolos era
esperado:

 

   * & = - + ; < / > at in é mod lembrete not rem

<> ou != ou ~= >= <= <> e ou como like2

   like4 likec entre || multiset membro submultiset

O símbolo "* foi inserido antes de "[" para continuar.

ORA-06550: linha 4, coluna 96:

PLS-00103: Encontrado o símbolo "]" quando um dos seguintes símbolos era
esperado:

 

   . ( * @ % & = - + ; < / > at in é mod lembrete not rem

<> ou != ou ~= >= <= <> e ou como like2

   like4 likec entre || membro sub

06550. 0 -  "line %s, column %s:\n%s"

*Cause:Usually a PL/SQL compilation error.

 

Em 12 de março de 2014 11:29, angelo  escreveu:

  

Yuri,

 

Posta a msg de erro..

 

 

 

 

2014-03-12 11:26 GMT-03:00 Yuri Menon :

 

  

Bom dia !

 

Não estou conseguindo rodar o seguinte comando:

create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';

 

Podem me ajudar, por favor?

 

Obrigado!

 

 





Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Obrigado pela ajuda.
Mas pelo jeito não vai ser possível criar esse índice, agora deu um outro
erro, e talvez esse erro seja irreversível (identificador muito longo):

Erro ao iniciar na linha 106 no comando
declare
cmd varchar2(400);
begin
cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,''[A-Z]'')")';
EXECUTE IMMEDIATE cmd;
END;
Relatório de erro:
ORA-00972: identificador muito longo
ORA-06512: em line 5
00972. 0 -  "identifier is too long"
*Cause:An identifier with more than 30 characters was specified.
*Action:   Specify at most 30 characters.


Em 12 de março de 2014 11:46, Andre Santos escreveu:

>
>
> Yuri
>
> Par ter apóstrofo (apas simples) dentro de uma string (que é delimitada
> também por este caracter), o caracter deve constar 2 vezes.
>
> Tente:
>
> cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
> CPARTIDA("regexp_replace(INTEGRACHAVE,''[I.E.B.X]'')")';
>
> ou
>
> cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
> CPARTIDA(regexp_replace(INTEGRACHAVE,''[I.E.B.X]''))';
>
> Observação: Não confundir "aspas duplas" (que é um único caracter), com 2
> aspas simples repetidas (2 apóstrofos juntos).
>
> [ ]
>
> André
>
>
>
>
> Em 12 de março de 2014 11:41, Andre Santos 
> escreveu:
>
> Palpite... problemas com aspas e/ou apóstrofos?
>> Qual a mensagem de erro?
>>
>> [ ]
>>
>> André
>>
>>
>>
>> Em 12 de março de 2014 11:29, angelo  escreveu:
>>
>>>
>>>
>>> Yuri,
>>>
>>> Posta a msg de erro..
>>>
>>>
>>>
>>>
>>>
>>> 2014-03-12 11:26 GMT-03:00 Yuri Menon :
>>>
>>>

 Bom dia !

 Não estou conseguindo rodar o seguinte comando:
 create  index IDX_CPARTIDA_SUBCHAVE2 on
 CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';

 Podem me ajudar, por favor?

 Obrigado!


>>>
>>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Andre Santos
Yuri

Par ter apóstrofo (apas simples) dentro de uma string (que é delimitada
também por este caracter), o caracter deve constar 2 vezes.

Tente:

cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,''[I.E.B.X]'')")';

ou

cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA(regexp_replace(INTEGRACHAVE,''[I.E.B.X]''))';

Observação: Não confundir "aspas duplas" (que é um único caracter), com 2
aspas simples repetidas (2 apóstrofos juntos).

[ ]

André




Em 12 de março de 2014 11:41, Andre Santos escreveu:

> Palpite... problemas com aspas e/ou apóstrofos?
> Qual a mensagem de erro?
>
> [ ]
>
> André
>
>
>
> Em 12 de março de 2014 11:29, angelo  escreveu:
>
>>
>>
>> Yuri,
>>
>> Posta a msg de erro..
>>
>>
>>
>>
>>
>> 2014-03-12 11:26 GMT-03:00 Yuri Menon :
>>
>>
>>>
>>> Bom dia !
>>>
>>> Não estou conseguindo rodar o seguinte comando:
>>> create  index IDX_CPARTIDA_SUBCHAVE2 on
>>> CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';
>>>
>>> Podem me ajudar, por favor?
>>>
>>> Obrigado!
>>>
>>>
>>  
>>
>
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Andre Santos
Palpite... problemas com aspas e/ou apóstrofos?
Qual a mensagem de erro?

[ ]

André



Em 12 de março de 2014 11:29, angelo  escreveu:

>
>
> Yuri,
>
> Posta a msg de erro..
>
>
>
>
>
> 2014-03-12 11:26 GMT-03:00 Yuri Menon :
>
>
>>
>> Bom dia !
>>
>> Não estou conseguindo rodar o seguinte comando:
>> create  index IDX_CPARTIDA_SUBCHAVE2 on
>> CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';
>>
>> Podem me ajudar, por favor?
>>
>> Obrigado!
>>
>>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Erro ao iniciar na linha 106 no comando
declare
cmd varchar2(400);
begin
cmd := 'create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';
EXECUTE IMMEDIATE cmd;
END;
Relatório de erro:
ORA-06550: linha 4, coluna 88:
PLS-00103: Encontrado o símbolo "[" quando um dos seguintes símbolos era
esperado:

   * & = - + ; < / > at in é mod lembrete not rem
<> ou != ou ~= >= <= <> e ou como like2
   like4 likec entre || multiset membro submultiset
O símbolo "* foi inserido antes de "[" para continuar.
ORA-06550: linha 4, coluna 96:
PLS-00103: Encontrado o símbolo "]" quando um dos seguintes símbolos era
esperado:

   . ( * @ % & = - + ; < / > at in é mod lembrete not rem
<> ou != ou ~= >= <= <> e ou como like2
   like4 likec entre || membro sub
06550. 0 -  "line %s, column %s:\n%s"
*Cause:Usually a PL/SQL compilation error.


Em 12 de março de 2014 11:29, angelo  escreveu:

>
>
> Yuri,
>
> Posta a msg de erro..
>
>
>
>
>
> 2014-03-12 11:26 GMT-03:00 Yuri Menon :
>
>
>>
>> Bom dia !
>>
>> Não estou conseguindo rodar o seguinte comando:
>> create  index IDX_CPARTIDA_SUBCHAVE2 on
>> CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';
>>
>> Podem me ajudar, por favor?
>>
>> Obrigado!
>>
>>
>  
>


Re: [oracle_br] falha ao criar índice

2014-03-12 Por tôpico angelo
Yuri,

Posta a msg de erro..





2014-03-12 11:26 GMT-03:00 Yuri Menon :

>
>
> Bom dia !
>
> Não estou conseguindo rodar o seguinte comando:
> create  index IDX_CPARTIDA_SUBCHAVE2 on
> CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';
>
> Podem me ajudar, por favor?
>
> Obrigado!
>
>  
>


[oracle_br] falha ao criar índice

2014-03-12 Por tôpico Yuri Menon
Bom dia !

Não estou conseguindo rodar o seguinte comando:
create  index IDX_CPARTIDA_SUBCHAVE2 on
CPARTIDA("regexp_replace(INTEGRACHAVE,'[I.E.B.X]')")';

Podem me ajudar, por favor?

Obrigado!