• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

Regex em SQL?

10 mensagens neste tópico

Estas a dizer para ficarmos na dúvida ou que tu ficaste na dúvida? :D

Quanto à questão, não faço ideia :X

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

penso que o mais próximo que o SQL tem de expressões regulares é o LIKE...

no entanto, as extensões ao SQL já permitem expressões regulares mais poderosas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que é possivel, pode não ser suportado nativamente, depende do SGBD.

Microsoft SQL 2000 (não nativamente)

Microsoft SQL 2005 (com acesso ao CLR .NET)

Oracle (introduzido no 10g)

Parece que o MySQL também dá, usando algo tipo "SELECT something FROM table WHERE column REGEXP 'regexp' "

http://www.tech-recipes.com/mysql_tips484.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não é SQL, assumindo que SQL é a linguagem standard. O que quero dizer é que esse tipo de construção só é possível nas extensões que os motores de bases de dados aplicam ao standard SQL. Se quiseres usar *apenas* SQL isso não é possível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também não me parece que seja possível em SQL "standard", pelo menos não vi nada  do género até agora.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estas a dizer para ficarmos na dúvida ou que tu ficaste na dúvida? :D

Quanto à questão, não faço ideia :X

Typo, fixed.

Isso não é SQL, assumindo que SQL é a linguagem standard. O que quero dizer é que esse tipo de construção só é possível nas extensões que os motores de bases de dados aplicam ao standard SQL. Se quiseres usar *apenas* SQL isso não é possível.

Também não me parece que seja possível em SQL "standard", pelo menos não vi nada  do género até agora.

Eu não quero saber se é SQL vindo de fábrica ou se é custom, só quero saber se há mesmo forma de usar regex numa query a um SGBD, mas o shumy já respondeu. :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é uma questão de ser SQL de fábrica ou não, é uma questão de não ser SQL.

E nesse caso, sim, alguns DBMS permitem isso, como te foi respondido, além de que se tiveres a possibilidade de usar procedimentos muito provávelmente a linguagem que usas permite isso, e sempre tem mais capacidade que as extensões ao SQL providenciadas pelo motor da base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é uma questão de ser SQL de fábrica ou não, é uma questão de não ser SQL.

E nesse caso, sim, alguns DBMS permitem isso, como te foi respondido, além de que se tiveres a possibilidade de usar procedimentos muito provávelmente a linguagem que usas permite isso, e sempre tem mais capacidade que as extensões ao SQL providenciadas pelo motor da base de dados.

No entanto, usando regex no SGBD, evito o uso desnecessário de bandwidth adicional entre o servidor e o cliente, coisa muito importante em alguns casos. :D
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é uma questão de ser SQL de fábrica ou não, é uma questão de não ser SQL.

E nesse caso, sim, alguns DBMS permitem isso, como te foi respondido, além de que se tiveres a possibilidade de usar procedimentos muito provávelmente a linguagem que usas permite isso, e sempre tem mais capacidade que as extensões ao SQL providenciadas pelo motor da base de dados.

No entanto, usando regex no SGBD, evito o uso desnecessário de bandwidth adicional entre o servidor e o cliente, coisa muito importante em alguns casos. :D

E processamento.. Pela lógica se é um módulo á parte, terá que transformar isso para linguagem materna, uma outra query em SQL.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora