Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Andre Carneiro
Estou tentando entender porque voce está tentando buscar pelo conteúdo de
'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se pensar
em usar FTS, embora não pareça ser o caso.



Atenciosamente

2015-09-30 8:38 GMT-03:00 Italo Gonçales :

> Bom dia!
>
> Estou migrando uma aplicação java stand alone para WebService usando
> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
> antiga base de dado ( em txt ) da aplicação java possui expressões
> regulares nas chaves que estou utilizando para a busca ( e que é a única
> que eu tenho ).
>
> Gostaria de saber se há alguma maneira de buscar um valor que corresponda
> à regex armazenada no banco de dados?
>
> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
> perl.
>
> Segue busca de exemplo:
>
> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>
> +--++
> | atr  | name
>   |
>
> +---+---+
> | 3B[0-9]{4}8551FE119864  | S12-468  |
>
> Tentei usar o search_like, search com '-rlike' e search com '-like', mas
> nada funcionou. Tentei inverter na query do search também, mas não deu
> muito certo.
>
> Tentativas:
> $card_rs->search({ atr => { -like => $atr } })->single;
>
> $card_rs->search({ atr => { -rlike => $atr } })->single;
>
> $card_rs->search({ $atr => { -rlike => atr } })->single;
>
> Gostaria de saber se há alguma outra maneira de fazer essa busca no perl.
>
> Obrigado!
>
> --
>
> Att,
>
> Italo Gonçales
> Perl Developer at Morpho
> +55 12 98134 0318
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


-- 
André Garcia Carneiro
Software Engineer
(11)982907780
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L
=end disclaimer


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
Enão, eu não tenho a regex como valor, e sim o valor completo da string. A
regex está armazenada no banco de dados:

mysql> select * from card_atr where atr RLIKE
'3B7F138031C052640569937083819000';
Empty set (0,00 sec)

mysql> select * from card_atr where
'3B7F138031C052640569937083819000' rlike atr;
++--+---+
| id_atr | atr
| name
   |
++--+---+
| 69 | 3B7F138031C052[0-9]{4}640569937083819000 | S12-265
 |
++--+---+--+

Seguindo o exemplo do email do Hernan, a saída com DBIC_TRACE ativado foi:

[devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
3B7F138031C052640569937083819000 RLIKE ? ): 'atr'
DBI Exception: DBD::mysql::st execute failed: Unknown column
'3B7F138031C052640569937083819000' in 'where clause' [for Statement
"SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
3B7F138031C052640569937083819000 RLIKE ? )" with ParamValues:
0='atr'] at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Schema.pm
line 1081.

DBIx::Class::Schema::throw_exception(SmartCardWebAtr::Schema=HASH(0x2415cf0),
"DBI Exception: DBD::mysql::st execute failed: Unknown column "...) called
at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage.pm
line 112

DBIx::Class::Storage::throw_exception(DBIx::Class::Storage::DBI::mysql=HASH(0x24164a0),
"DBI Exception: DBD::mysql::st execute failed: Unknown column "...) called
at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 1466
DBIx::Class::Storage::DBI::__ANON__("DBD::mysql::st execute failed:
Unknown column '3B7F138031"..., DBI::st=HASH(0x2a573c0), undef) called
at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 1834

DBIx::Class::Storage::DBI::_dbh_execute(DBIx::Class::Storage::DBI::mysql=HASH(0x24164a0),
DBI::db=HASH(0x2a089e0), "SELECT me.id_atr, me.atr, me.name,
me.eletric_test, me.code, "..., ARRAY(0x2a31338), ARRAY(0x265e6c0)) called
at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 849
DBIx::Class::Storage::DBI::__ANON__() called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/BlockRunner.pm
line 136
DBIx::Class::Storage::BlockRunner::try {...} () called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/Try/Tiny.pm
line 76
eval {...} called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/Try/Tiny.pm
line 72
Try::Tiny::try(CODE(0x2a3c558), Try::Tiny::Catch=REF(0x28c0020))
called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/BlockRunner.pm
line 140
DBIx::Class::Storage::BlockRunner::__ANON__() called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/Context/Preserve.pm
line 32
Context::Preserve::preserve_context(CODE(0x2a097c0), "replace",
CODE(0x2a35788)) called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/BlockRunner.pm
line 219

DBIx::Class::Storage::BlockRunner::_run(DBIx::Class::Storage::BlockRunner=HASH(0x2a2d3c0),
CODE(0x27bcdf8)) called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/BlockRunner.pm
line 111

DBIx::Class::Storage::BlockRunner::run(DBIx::Class::Storage::BlockRunner=HASH(0x2a2d3c0),
CODE(0x27bcdf8)) called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 850
DBIx::Class::Storage::DBI::dbh_do(undef, undef, "SELECT me.id_atr,
me.atr, me.name, me.eletric_test, me.code, "..., ARRAY(0x2a31338),
ARRAY(0x265e6c0)) called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 1815

DBIx::Class::Storage::DBI::_execute(DBIx::Class::Storage::DBI::mysql=HASH(0x24164a0),
"select", ARRAY(0x1a53ea8), ARRAY(0x1ba6f30), HASH(0xb8c038),
HASH(0x28e1458)) called at
/home/devel/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/DBIx/Class/Storage/DBI.pm
line 2376

DBIx::Class::Storage::DBI::_select(DBIx::Class::Storage::DBI::mysql=HASH(0x24164a0),
ARRAY(0x1a53ea8), ARRAY(0x1ba6f30), HASH(0xb8c038), HASH(0x1be6788)) called
at

Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
O código está assim:

my $regex = '3B7F138031C052640569937083819000';
use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' } })->all;

Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
$card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:

[devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
RLIKE ? ): '3B7F138031C052640569937083819000'



Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
daniel.oliveira.mantov...@gmail.com> escreveu:

> Italo,
>
> qual estrutura no dbic vc está usando que o resultado é "SELECT
> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>
> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>
>> olá Carneiro,
>>
>> É porque a atr, é um dado que vem do chip do cartão, estou lendo o mesmo
>> a partir de uma leitora de smartcard, e buscando as informações sobre esta
>> atr no banco.
>>
>> Em 30 de setembro de 2015 10:09, Andre Carneiro <
>> andregarciacarne...@gmail.com> escreveu:
>>
>>> Estou tentando entender porque voce está tentando buscar pelo conteúdo
>>> de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
>>> tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
>>> rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se pensar
>>> em usar FTS, embora não pareça ser o caso.
>>>
>>>
>>>
>>> Atenciosamente
>>>
>>> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>>>
 Bom dia!

 Estou migrando uma aplicação java stand alone para WebService usando
 Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
 antiga base de dado ( em txt ) da aplicação java possui expressões
 regulares nas chaves que estou utilizando para a busca ( e que é a única
 que eu tenho ).

 Gostaria de saber se há alguma maneira de buscar um valor que
 corresponda à regex armazenada no banco de dados?

 Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
 perl.

 Segue busca de exemplo:

 mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;

 +--++
 | atr  | name
 |

 +---+---+
 | 3B[0-9]{4}8551FE119864  | S12-468  |

 Tentei usar o search_like, search com '-rlike' e search com '-like',
 mas nada funcionou. Tentei inverter na query do search também, mas não deu
 muito certo.

 Tentativas:
 $card_rs->search({ atr => { -like => $atr } })->single;

 $card_rs->search({ atr => { -rlike => $atr } })->single;

 $card_rs->search({ $atr => { -rlike => atr } })->single;

 Gostaria de saber se há alguma outra maneira de fazer essa busca no
 perl.

 Obrigado!

 --

 Att,

 Italo Gonçales
 Perl Developer at Morpho
 +55 12 98134 0318

 =begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
  L
 =end disclaimer


>>>
>>>
>>> --
>>> André Garcia Carneiro
>>> Software Engineer
>>> (11)982907780
>>>
>>> =begin disclaimer
>>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>>  L
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>>
>>
>> Att,
>>
>> Italo Gonçales
>> Perl Developer at Morpho
>> +55 12 98134 0318
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
> Thank you very much!
>
> -dom
>
> --
>
> Daniel de Oliveira Mantovani
> Business Analytic Specialist
> Perl Evangelist /Astrophysics hobbyist.
> +55 11 9 8538-9897
> XOXO
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


-- 


Att,

Italo Gonçales
Perl Developer at Morpho
+55 12 98134 0318
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L
=end disclaimer


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Daniel Vinciguerra
Fala Italo,

Sugiro que vc dê uma habilitada no DBIC_TRACE para ver a saída antes de
tudo...

Não consigo simular o seu cenário mas testei com um banco meu e em outro
contexto e...

->search({ email => {-rlike => 'foo@.*'} })->single;
Query: SELECT me.id, me.name, me.email, me.password, me.active, me.change,
me.token, me.last_access, me.updated, me.created FROM user me WHERE ( email
RLIKE ? ): 'foo@.*'

Isso me diz que aparentemente sua query com -rlike esta OK

Você também pode fazer o seguinte:

->search({ email => \["RLIKE 'foo@.*'"] })->single;
Query: SELECT me.id, me.name, me.email, me.password, me.active, me.change,
me.token, me.last_access, me.updated, me.created FROM user me WHERE ( email
RLIKE 'foo@.*' ):


Abs,




*Daniel Vinciguerra*
Web Solutions Architect and founder at Bivee
Cel: +55 (47) 9270-6171

*ATENÇÃO/ATTENTION:*
Este e-mail contém informações confidenciais e seu conteúdo é dirigido ao
uso do indivíduo ou da entidade mencionados acima. Se você recebeu esta
mensagem por engano, por favor, notifique o remetente e remova-o
imediatamente.


This e-mail contains confidential information intended only for the use of
the individual or entity named above. If you are not the intended
recipient, please notify the sender and delete it immediately.

2015-09-30 8:38 GMT-03:00 Italo Gonçales :

> Bom dia!
>
> Estou migrando uma aplicação java stand alone para WebService usando
> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
> antiga base de dado ( em txt ) da aplicação java possui expressões
> regulares nas chaves que estou utilizando para a busca ( e que é a única
> que eu tenho ).
>
> Gostaria de saber se há alguma maneira de buscar um valor que corresponda
> à regex armazenada no banco de dados?
>
> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
> perl.
>
> Segue busca de exemplo:
>
> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>
> +--++
> | atr  | name
>   |
>
> +---+---+
> | 3B[0-9]{4}8551FE119864  | S12-468  |
>
> Tentei usar o search_like, search com '-rlike' e search com '-like', mas
> nada funcionou. Tentei inverter na query do search também, mas não deu
> muito certo.
>
> Tentativas:
> $card_rs->search({ atr => { -like => $atr } })->single;
>
> $card_rs->search({ atr => { -rlike => $atr } })->single;
>
> $card_rs->search({ $atr => { -rlike => atr } })->single;
>
> Gostaria de saber se há alguma outra maneira de fazer essa busca no perl.
>
> Obrigado!
>
> --
>
> Att,
>
> Italo Gonçales
> Perl Developer at Morpho
> +55 12 98134 0318
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L
=end disclaimer


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Daniel de Oliveira Mantovani
Italo,

qual estrutura no dbic vc está usando que o resultado é "SELECT me.id_atr,
me.atr, me.name, me.eletric_test, me.code, me.status, me.microsiga1,
me.microsiga2, me.observation FROM card_atr me WHERE (
3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?

2015-09-30 10:14 GMT-03:00 Italo Gonçales :

> olá Carneiro,
>
> É porque a atr, é um dado que vem do chip do cartão, estou lendo o mesmo a
> partir de uma leitora de smartcard, e buscando as informações sobre esta
> atr no banco.
>
> Em 30 de setembro de 2015 10:09, Andre Carneiro <
> andregarciacarne...@gmail.com> escreveu:
>
>> Estou tentando entender porque voce está tentando buscar pelo conteúdo de
>> 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
>> tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
>> rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se pensar
>> em usar FTS, embora não pareça ser o caso.
>>
>>
>>
>> Atenciosamente
>>
>> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>>
>>> Bom dia!
>>>
>>> Estou migrando uma aplicação java stand alone para WebService usando
>>> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
>>> antiga base de dado ( em txt ) da aplicação java possui expressões
>>> regulares nas chaves que estou utilizando para a busca ( e que é a única
>>> que eu tenho ).
>>>
>>> Gostaria de saber se há alguma maneira de buscar um valor que
>>> corresponda à regex armazenada no banco de dados?
>>>
>>> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
>>> perl.
>>>
>>> Segue busca de exemplo:
>>>
>>> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>>>
>>> +--++
>>> | atr  | name
>>> |
>>>
>>> +---+---+
>>> | 3B[0-9]{4}8551FE119864  | S12-468  |
>>>
>>> Tentei usar o search_like, search com '-rlike' e search com '-like', mas
>>> nada funcionou. Tentei inverter na query do search também, mas não deu
>>> muito certo.
>>>
>>> Tentativas:
>>> $card_rs->search({ atr => { -like => $atr } })->single;
>>>
>>> $card_rs->search({ atr => { -rlike => $atr } })->single;
>>>
>>> $card_rs->search({ $atr => { -rlike => atr } })->single;
>>>
>>> Gostaria de saber se há alguma outra maneira de fazer essa busca no perl.
>>>
>>> Obrigado!
>>>
>>> --
>>>
>>> Att,
>>>
>>> Italo Gonçales
>>> Perl Developer at Morpho
>>> +55 12 98134 0318
>>>
>>> =begin disclaimer
>>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>>  L
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> André Garcia Carneiro
>> Software Engineer
>> (11)982907780
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
>
>
> Att,
>
> Italo Gonçales
> Perl Developer at Morpho
> +55 12 98134 0318
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


-- 
Thank you very much!

-dom

--

Daniel de Oliveira Mantovani
Business Analytic Specialist
Perl Evangelist /Astrophysics hobbyist.
+55 11 9 8538-9897
XOXO
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L
=end disclaimer


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Daniel de Oliveira Mantovani
Me falaram no canal para você tentar isso,
search({ "atr" => { "rlike" => '3B7F138031C052640569937083819000' }
})

2015-09-30 10:30 GMT-03:00 Italo Gonçales :

> O código está assim:
>
> my $regex = '3B7F138031C052640569937083819000';
> use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' } })->all;
>
> Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
> $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:
>
> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
> RLIKE ? ): '3B7F138031C052640569937083819000'
>
>
>
> Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
> daniel.oliveira.mantov...@gmail.com> escreveu:
>
>> Italo,
>>
>> qual estrutura no dbic vc está usando que o resultado é "SELECT
>> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
>> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>>
>> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>>
>>> olá Carneiro,
>>>
>>> É porque a atr, é um dado que vem do chip do cartão, estou lendo o mesmo
>>> a partir de uma leitora de smartcard, e buscando as informações sobre esta
>>> atr no banco.
>>>
>>> Em 30 de setembro de 2015 10:09, Andre Carneiro <
>>> andregarciacarne...@gmail.com> escreveu:
>>>
 Estou tentando entender porque voce está tentando buscar pelo conteúdo
 de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
 tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
 rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se pensar
 em usar FTS, embora não pareça ser o caso.



 Atenciosamente

 2015-09-30 8:38 GMT-03:00 Italo Gonçales :

> Bom dia!
>
> Estou migrando uma aplicação java stand alone para WebService usando
> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. 
> A
> antiga base de dado ( em txt ) da aplicação java possui expressões
> regulares nas chaves que estou utilizando para a busca ( e que é a única
> que eu tenho ).
>
> Gostaria de saber se há alguma maneira de buscar um valor que
> corresponda à regex armazenada no banco de dados?
>
> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
> perl.
>
> Segue busca de exemplo:
>
> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>
> +--++
> | atr  | name
>   |
>
> +---+---+
> | 3B[0-9]{4}8551FE119864  | S12-468  |
>
> Tentei usar o search_like, search com '-rlike' e search com '-like',
> mas nada funcionou. Tentei inverter na query do search também, mas não deu
> muito certo.
>
> Tentativas:
> $card_rs->search({ atr => { -like => $atr } })->single;
>
> $card_rs->search({ atr => { -rlike => $atr } })->single;
>
> $card_rs->search({ $atr => { -rlike => atr } })->single;
>
> Gostaria de saber se há alguma outra maneira de fazer essa busca no
> perl.
>
> Obrigado!
>
> --
>
> Att,
>
> Italo Gonçales
> Perl Developer at Morpho
> +55 12 98134 0318
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


 --
 André Garcia Carneiro
 Software Engineer
 (11)982907780

 =begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
  L
 =end disclaimer


>>>
>>>
>>> --
>>>
>>>
>>> Att,
>>>
>>> Italo Gonçales
>>> Perl Developer at Morpho
>>> +55 12 98134 0318
>>>
>>> =begin disclaimer
>>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>>  L
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Thank you very much!
>>
>> -dom
>>
>> --
>>
>> Daniel de Oliveira Mantovani
>> Business Analytic Specialist
>> Perl Evangelist /Astrophysics hobbyist.
>> +55 11 9 8538-9897
>> XOXO
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
>
>
> Att,
>
> Italo 

Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
olá Carneiro,

É porque a atr, é um dado que vem do chip do cartão, estou lendo o mesmo a
partir de uma leitora de smartcard, e buscando as informações sobre esta
atr no banco.

Em 30 de setembro de 2015 10:09, Andre Carneiro <
andregarciacarne...@gmail.com> escreveu:

> Estou tentando entender porque voce está tentando buscar pelo conteúdo de
> 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
> tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
> rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se pensar
> em usar FTS, embora não pareça ser o caso.
>
>
>
> Atenciosamente
>
> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>
>> Bom dia!
>>
>> Estou migrando uma aplicação java stand alone para WebService usando
>> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a dia. A
>> antiga base de dado ( em txt ) da aplicação java possui expressões
>> regulares nas chaves que estou utilizando para a busca ( e que é a única
>> que eu tenho ).
>>
>> Gostaria de saber se há alguma maneira de buscar um valor que corresponda
>> à regex armazenada no banco de dados?
>>
>> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select no
>> perl.
>>
>> Segue busca de exemplo:
>>
>> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>>
>> +--++
>> | atr  | name
>>   |
>>
>> +---+---+
>> | 3B[0-9]{4}8551FE119864  | S12-468  |
>>
>> Tentei usar o search_like, search com '-rlike' e search com '-like', mas
>> nada funcionou. Tentei inverter na query do search também, mas não deu
>> muito certo.
>>
>> Tentativas:
>> $card_rs->search({ atr => { -like => $atr } })->single;
>>
>> $card_rs->search({ atr => { -rlike => $atr } })->single;
>>
>> $card_rs->search({ $atr => { -rlike => atr } })->single;
>>
>> Gostaria de saber se há alguma outra maneira de fazer essa busca no perl.
>>
>> Obrigado!
>>
>> --
>>
>> Att,
>>
>> Italo Gonçales
>> Perl Developer at Morpho
>> +55 12 98134 0318
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
> André Garcia Carneiro
> Software Engineer
> (11)982907780
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


-- 


Att,

Italo Gonçales
Perl Developer at Morpho
+55 12 98134 0318
=begin disclaimer
   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
 L
=end disclaimer


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
Entendi Mantovani!

É bom saber disso, pois estou migrando algumas coisas aqui para Catalyst, e
acabo me deparando com esses casos. Agora não vou mais travar com esse tipo
de coisas, espero.

Obrigado!





Em 30 de setembro de 2015 11:21, Daniel de Oliveira Mantovani <
daniel.oliveira.mantov...@gmail.com> escreveu:

> Italo, quando você precisar de alguma função que não seja suportada pela
> estrutura de dados do DBIC, você usa \['']. Geralmente são funções
> específicas do banco, como as relacionadas à data.
>
>
> https://github.com/mantovani/IBM-MDM-LogAnalyzer/blob/master/lib/IBM/MDM/LogAnalyzer/Schema/ResultSet/MdmPerformance.pm#L94
>
> 2015-09-30 11:10 GMT-03:00 Italo Gonçales :
>
>> Após uma ajuda do Mantovani e do Ilmari no canal #dbix-class, obtive a
>> seguinte solução:
>> $card_rs->search(\['? RLIKE atr',
>> '3B7F138031C0521234640569937083819000' ]);
>>
>> Segundo o ilmari: geralmente se você precisa de alguma coisa além do
>> identificador ( column name )  no lado esquerdo, você precisa usar \[] ou \"
>>
>> A saída ficou a seguinte:
>>
>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( ?
>> RLIKE atr ): '3B7F138031C0521234640569937083819000'
>>
>> E encontrou os dados que eu precisava.
>>
>> Obrigado a todos pela atenção!
>>
>> Em 30 de setembro de 2015 10:55, Italo Gonçales > > escreveu:
>>
>>> Utilizando a estrutura: use DDP; p $_ for $card_rs->search({ "atr" => {
>>> "rlike" => '3B7F138031C052640569937083819000' } });
>>>
>>> Obtive:
>>> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
>>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
>>> RLIKE ? ): '3B7F138031C052640569937083819000'
>>>
>>> Em 30 de setembro de 2015 10:42, Daniel de Oliveira Mantovani <
>>> daniel.oliveira.mantov...@gmail.com> escreveu:
>>>
 Me falaram no canal para você tentar isso,
 search({ "atr" => { "rlike" =>
 '3B7F138031C052640569937083819000' } })

 2015-09-30 10:30 GMT-03:00 Italo Gonçales :

> O código está assim:
>
> my $regex = '3B7F138031C052640569937083819000';
> use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' }
> })->all;
>
> Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
> $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:
>
> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code,
> me.status, me.microsiga1, me.microsiga2, me.observation FROM card_atr me
> WHERE ( atr RLIKE ? ): '3B7F138031C052640569937083819000'
>
>
>
> Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
> daniel.oliveira.mantov...@gmail.com> escreveu:
>
>> Italo,
>>
>> qual estrutura no dbic vc está usando que o resultado é "SELECT
>> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
>> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>>
>> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>>
>>> olá Carneiro,
>>>
>>> É porque a atr, é um dado que vem do chip do cartão, estou lendo o
>>> mesmo a partir de uma leitora de smartcard, e buscando as informações 
>>> sobre
>>> esta atr no banco.
>>>
>>> Em 30 de setembro de 2015 10:09, Andre Carneiro <
>>> andregarciacarne...@gmail.com> escreveu:
>>>
 Estou tentando entender porque voce está tentando buscar pelo
 conteúdo de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que
 voce pode tentar usar RLIKE do próprio Mysql como o Vinciguerra 
 sugeriu(ele
 foi mais rápido que eu... :P). Dependendo do tamanho dessa tabela,
 podería-se pensar em usar FTS, embora não pareça ser o caso.



 Atenciosamente

 2015-09-30 8:38 GMT-03:00 Italo Gonçales 
 :

> Bom dia!
>
> Estou migrando uma aplicação java stand alone para WebService
> usando Catalyst e MySQL, quando me deparei com um caso atípico do meu 
> dia a
> dia. A antiga base de dado ( em txt ) da aplicação java possui 
> expressões
> regulares nas chaves que estou utilizando para a busca ( e que é a 
> única
> que eu tenho ).
>
> Gostaria de saber se há alguma maneira de buscar um valor que
> corresponda à regex armazenada no banco de dados?
>
> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo
> select no perl.
>
> 

Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
Após uma ajuda do Mantovani e do Ilmari no canal #dbix-class, obtive a
seguinte solução:
$card_rs->search(\['? RLIKE atr',
'3B7F138031C0521234640569937083819000' ]);

Segundo o ilmari: geralmente se você precisa de alguma coisa além do
identificador ( column name )  no lado esquerdo, você precisa usar \[] ou \"

A saída ficou a seguinte:

SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( ?
RLIKE atr ): '3B7F138031C0521234640569937083819000'

E encontrou os dados que eu precisava.

Obrigado a todos pela atenção!

Em 30 de setembro de 2015 10:55, Italo Gonçales 
escreveu:

> Utilizando a estrutura: use DDP; p $_ for $card_rs->search({ "atr" => {
> "rlike" => '3B7F138031C052640569937083819000' } });
>
> Obtive:
> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
> RLIKE ? ): '3B7F138031C052640569937083819000'
>
> Em 30 de setembro de 2015 10:42, Daniel de Oliveira Mantovani <
> daniel.oliveira.mantov...@gmail.com> escreveu:
>
>> Me falaram no canal para você tentar isso,
>> search({ "atr" => { "rlike" => '3B7F138031C052640569937083819000'
>> } })
>>
>> 2015-09-30 10:30 GMT-03:00 Italo Gonçales :
>>
>>> O código está assim:
>>>
>>> my $regex = '3B7F138031C052640569937083819000';
>>> use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' }
>>> })->all;
>>>
>>> Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
>>> $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:
>>>
>>> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
>>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
>>> RLIKE ? ): '3B7F138031C052640569937083819000'
>>>
>>>
>>>
>>> Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
>>> daniel.oliveira.mantov...@gmail.com> escreveu:
>>>
 Italo,

 qual estrutura no dbic vc está usando que o resultado é "SELECT
 me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
 me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?

 2015-09-30 10:14 GMT-03:00 Italo Gonçales :

> olá Carneiro,
>
> É porque a atr, é um dado que vem do chip do cartão, estou lendo o
> mesmo a partir de uma leitora de smartcard, e buscando as informações 
> sobre
> esta atr no banco.
>
> Em 30 de setembro de 2015 10:09, Andre Carneiro <
> andregarciacarne...@gmail.com> escreveu:
>
>> Estou tentando entender porque voce está tentando buscar pelo
>> conteúdo de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que
>> voce pode tentar usar RLIKE do próprio Mysql como o Vinciguerra 
>> sugeriu(ele
>> foi mais rápido que eu... :P). Dependendo do tamanho dessa tabela,
>> podería-se pensar em usar FTS, embora não pareça ser o caso.
>>
>>
>>
>> Atenciosamente
>>
>> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>>
>>> Bom dia!
>>>
>>> Estou migrando uma aplicação java stand alone para WebService usando
>>> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a 
>>> dia. A
>>> antiga base de dado ( em txt ) da aplicação java possui expressões
>>> regulares nas chaves que estou utilizando para a busca ( e que é a única
>>> que eu tenho ).
>>>
>>> Gostaria de saber se há alguma maneira de buscar um valor que
>>> corresponda à regex armazenada no banco de dados?
>>>
>>> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select
>>> no perl.
>>>
>>> Segue busca de exemplo:
>>>
>>> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>>>
>>> +--++
>>> | atr  | name
>>> |
>>>
>>> +---+---+
>>> | 3B[0-9]{4}8551FE119864  | S12-468
>>>  |
>>>
>>> Tentei usar o search_like, search com '-rlike' e search com '-like',
>>> mas nada funcionou. Tentei inverter na query do search também, mas não 
>>> deu
>>> muito certo.
>>>
>>> Tentativas:
>>> $card_rs->search({ atr => { -like => $atr } })->single;
>>>
>>> $card_rs->search({ atr => { -rlike => $atr } })->single;
>>>
>>> $card_rs->search({ $atr => { -rlike => atr } })->single;
>>>
>>> Gostaria de saber se há alguma outra maneira de fazer essa busca no
>>> perl.
>>>

Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Daniel de Oliveira Mantovani
Italo, quando você precisar de alguma função que não seja suportada pela
estrutura de dados do DBIC, você usa \['']. Geralmente são funções
específicas do banco, como as relacionadas à data.

https://github.com/mantovani/IBM-MDM-LogAnalyzer/blob/master/lib/IBM/MDM/LogAnalyzer/Schema/ResultSet/MdmPerformance.pm#L94

2015-09-30 11:10 GMT-03:00 Italo Gonçales :

> Após uma ajuda do Mantovani e do Ilmari no canal #dbix-class, obtive a
> seguinte solução:
> $card_rs->search(\['? RLIKE atr',
> '3B7F138031C0521234640569937083819000' ]);
>
> Segundo o ilmari: geralmente se você precisa de alguma coisa além do
> identificador ( column name )  no lado esquerdo, você precisa usar \[] ou \"
>
> A saída ficou a seguinte:
>
> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( ?
> RLIKE atr ): '3B7F138031C0521234640569937083819000'
>
> E encontrou os dados que eu precisava.
>
> Obrigado a todos pela atenção!
>
> Em 30 de setembro de 2015 10:55, Italo Gonçales 
> escreveu:
>
>> Utilizando a estrutura: use DDP; p $_ for $card_rs->search({ "atr" => {
>> "rlike" => '3B7F138031C052640569937083819000' } });
>>
>> Obtive:
>> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
>> RLIKE ? ): '3B7F138031C052640569937083819000'
>>
>> Em 30 de setembro de 2015 10:42, Daniel de Oliveira Mantovani <
>> daniel.oliveira.mantov...@gmail.com> escreveu:
>>
>>> Me falaram no canal para você tentar isso,
>>> search({ "atr" => { "rlike" =>
>>> '3B7F138031C052640569937083819000' } })
>>>
>>> 2015-09-30 10:30 GMT-03:00 Italo Gonçales :
>>>
 O código está assim:

 my $regex = '3B7F138031C052640569937083819000';
 use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' }
 })->all;

 Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
 $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:

 [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
 SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code,
 me.status, me.microsiga1, me.microsiga2, me.observation FROM card_atr me
 WHERE ( atr RLIKE ? ): '3B7F138031C052640569937083819000'



 Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
 daniel.oliveira.mantov...@gmail.com> escreveu:

> Italo,
>
> qual estrutura no dbic vc está usando que o resultado é "SELECT
> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>
> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>
>> olá Carneiro,
>>
>> É porque a atr, é um dado que vem do chip do cartão, estou lendo o
>> mesmo a partir de uma leitora de smartcard, e buscando as informações 
>> sobre
>> esta atr no banco.
>>
>> Em 30 de setembro de 2015 10:09, Andre Carneiro <
>> andregarciacarne...@gmail.com> escreveu:
>>
>>> Estou tentando entender porque voce está tentando buscar pelo
>>> conteúdo de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que
>>> voce pode tentar usar RLIKE do próprio Mysql como o Vinciguerra 
>>> sugeriu(ele
>>> foi mais rápido que eu... :P). Dependendo do tamanho dessa tabela,
>>> podería-se pensar em usar FTS, embora não pareça ser o caso.
>>>
>>>
>>>
>>> Atenciosamente
>>>
>>> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>>>
 Bom dia!

 Estou migrando uma aplicação java stand alone para WebService
 usando Catalyst e MySQL, quando me deparei com um caso atípico do meu 
 dia a
 dia. A antiga base de dado ( em txt ) da aplicação java possui 
 expressões
 regulares nas chaves que estou utilizando para a busca ( e que é a 
 única
 que eu tenho ).

 Gostaria de saber se há alguma maneira de buscar um valor que
 corresponda à regex armazenada no banco de dados?

 Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select
 no perl.

 Segue busca de exemplo:

 mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;

 +--++
 | atr  | name
 |

 +---+---+
 | 3B[0-9]{4}8551FE119864  | S12-468
  |


Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Italo Gonçales
Utilizando a estrutura: use DDP; p $_ for $card_rs->search({ "atr" => {
"rlike" => '3B7F138031C052640569937083819000' } });

Obtive:
[devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
RLIKE ? ): '3B7F138031C052640569937083819000'

Em 30 de setembro de 2015 10:42, Daniel de Oliveira Mantovani <
daniel.oliveira.mantov...@gmail.com> escreveu:

> Me falaram no canal para você tentar isso,
> search({ "atr" => { "rlike" => '3B7F138031C052640569937083819000'
> } })
>
> 2015-09-30 10:30 GMT-03:00 Italo Gonçales :
>
>> O código está assim:
>>
>> my $regex = '3B7F138031C052640569937083819000';
>> use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' } })->all;
>>
>> Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
>> $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:
>>
>> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
>> RLIKE ? ): '3B7F138031C052640569937083819000'
>>
>>
>>
>> Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
>> daniel.oliveira.mantov...@gmail.com> escreveu:
>>
>>> Italo,
>>>
>>> qual estrutura no dbic vc está usando que o resultado é "SELECT
>>> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
>>> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>>>
>>> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>>>
 olá Carneiro,

 É porque a atr, é um dado que vem do chip do cartão, estou lendo o
 mesmo a partir de uma leitora de smartcard, e buscando as informações sobre
 esta atr no banco.

 Em 30 de setembro de 2015 10:09, Andre Carneiro <
 andregarciacarne...@gmail.com> escreveu:

> Estou tentando entender porque voce está tentando buscar pelo conteúdo
> de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
> tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
> rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se 
> pensar
> em usar FTS, embora não pareça ser o caso.
>
>
>
> Atenciosamente
>
> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>
>> Bom dia!
>>
>> Estou migrando uma aplicação java stand alone para WebService usando
>> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a 
>> dia. A
>> antiga base de dado ( em txt ) da aplicação java possui expressões
>> regulares nas chaves que estou utilizando para a busca ( e que é a única
>> que eu tenho ).
>>
>> Gostaria de saber se há alguma maneira de buscar um valor que
>> corresponda à regex armazenada no banco de dados?
>>
>> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select
>> no perl.
>>
>> Segue busca de exemplo:
>>
>> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>>
>> +--++
>> | atr  | name
>>   |
>>
>> +---+---+
>> | 3B[0-9]{4}8551FE119864  | S12-468  |
>>
>> Tentei usar o search_like, search com '-rlike' e search com '-like',
>> mas nada funcionou. Tentei inverter na query do search também, mas não 
>> deu
>> muito certo.
>>
>> Tentativas:
>> $card_rs->search({ atr => { -like => $atr } })->single;
>>
>> $card_rs->search({ atr => { -rlike => $atr } })->single;
>>
>> $card_rs->search({ $atr => { -rlike => atr } })->single;
>>
>> Gostaria de saber se há alguma outra maneira de fazer essa busca no
>> perl.
>>
>> Obrigado!
>>
>> --
>>
>> Att,
>>
>> Italo Gonçales
>> Perl Developer at Morpho
>> +55 12 98134 0318
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
> André Garcia Carneiro
> Software Engineer
> (11)982907780
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


 --


 Att,

 Italo Gonçales
 Perl Developer at Morpho
 +55 12 98134 

Re: [SP-pm] Encontrar valor em regex armazenada em banco de dados

2015-09-30 Por tôpico Daniel de Oliveira Mantovani
Italo, BTW Entra no canal do DBIx::Class, irc.perl.org #dbix-class

Eles já sabem da sua situação, vai ser muito mais rápido você lá do que eu
intermediando.

Abs!

2015-09-30 10:42 GMT-03:00 Daniel de Oliveira Mantovani <
daniel.oliveira.mantov...@gmail.com>:

> Me falaram no canal para você tentar isso,
> search({ "atr" => { "rlike" => '3B7F138031C052640569937083819000'
> } })
>
> 2015-09-30 10:30 GMT-03:00 Italo Gonçales :
>
>> O código está assim:
>>
>> my $regex = '3B7F138031C052640569937083819000';
>> use DDP; p $_ for $card_rs->search({ $regex => { RLIKE => 'atr' } })->all;
>>
>> Porém, invertendo a ordem da estrutura para ` use DDP; p $_ for
>> $card_rs->search({ atr => { RLIKE => $regex } })->all; `, a saída fica:
>>
>> [devel@develvm bin]$ DBIC_TRACE=1 perl findatr.pl
>> SELECT me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE ( atr
>> RLIKE ? ): '3B7F138031C052640569937083819000'
>>
>>
>>
>> Em 30 de setembro de 2015 10:26, Daniel de Oliveira Mantovani <
>> daniel.oliveira.mantov...@gmail.com> escreveu:
>>
>>> Italo,
>>>
>>> qual estrutura no dbic vc está usando que o resultado é "SELECT
>>> me.id_atr, me.atr, me.name, me.eletric_test, me.code, me.status,
>>> me.microsiga1, me.microsiga2, me.observation FROM card_atr me WHERE (
>>> 3B7F138031C052640569937083819000 RLIKE ? ): 'atr'" ?
>>>
>>> 2015-09-30 10:14 GMT-03:00 Italo Gonçales :
>>>
 olá Carneiro,

 É porque a atr, é um dado que vem do chip do cartão, estou lendo o
 mesmo a partir de uma leitora de smartcard, e buscando as informações sobre
 esta atr no banco.

 Em 30 de setembro de 2015 10:09, Andre Carneiro <
 andregarciacarne...@gmail.com> escreveu:

> Estou tentando entender porque voce está tentando buscar pelo conteúdo
> de 'atr' e nao pelo conteúdo de 'name'. De qq forma, creio que voce pode
> tentar usar RLIKE do próprio Mysql como o Vinciguerra sugeriu(ele foi mais
> rápido que eu... :P). Dependendo do tamanho dessa tabela, podería-se 
> pensar
> em usar FTS, embora não pareça ser o caso.
>
>
>
> Atenciosamente
>
> 2015-09-30 8:38 GMT-03:00 Italo Gonçales :
>
>> Bom dia!
>>
>> Estou migrando uma aplicação java stand alone para WebService usando
>> Catalyst e MySQL, quando me deparei com um caso atípico do meu dia a 
>> dia. A
>> antiga base de dado ( em txt ) da aplicação java possui expressões
>> regulares nas chaves que estou utilizando para a busca ( e que é a única
>> que eu tenho ).
>>
>> Gostaria de saber se há alguma maneira de buscar um valor que
>> corresponda à regex armazenada no banco de dados?
>>
>> Testei pelo MySQL e funcionou, mas não consigo fazer o mesmo select
>> no perl.
>>
>> Segue busca de exemplo:
>>
>> mysql> SELECT * FROM card where '3B45978551FE119864' RLIKE atr;
>>
>> +--++
>> | atr  | name
>>   |
>>
>> +---+---+
>> | 3B[0-9]{4}8551FE119864  | S12-468  |
>>
>> Tentei usar o search_like, search com '-rlike' e search com '-like',
>> mas nada funcionou. Tentei inverter na query do search também, mas não 
>> deu
>> muito certo.
>>
>> Tentativas:
>> $card_rs->search({ atr => { -like => $atr } })->single;
>>
>> $card_rs->search({ atr => { -rlike => $atr } })->single;
>>
>> $card_rs->search({ $atr => { -rlike => atr } })->single;
>>
>> Gostaria de saber se há alguma outra maneira de fazer essa busca no
>> perl.
>>
>> Obrigado!
>>
>> --
>>
>> Att,
>>
>> Italo Gonçales
>> Perl Developer at Morpho
>> +55 12 98134 0318
>>
>> =begin disclaimer
>>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>>  L
>> =end disclaimer
>>
>>
>
>
> --
> André Garcia Carneiro
> Software Engineer
> (11)982907780
>
> =begin disclaimer
>Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
>  L
> =end disclaimer
>
>


 --


 Att,

 Italo Gonçales
 Perl Developer at Morpho
 +55 12 98134 0318

 =begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
  SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org
  L
 =end disclaimer


>>>
>>>
>>>