Boa Tarde
Tenho um campo que é varchar2.
Agora preciso fazer uma validação, que esse campo em certo caso. Não aceite, letras,pontos,virgulas, acentos, ETC. QUe seja comente números.
Como eu faço, isso só vai acontecer em casa especifico.
ATT
Data type, campo varchar2, ser somente number
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá priajf,
Acho que no seu caso você poderia usar uma CHECK CONSTRAINT que utilizasse EXPRESSÕES REGULARES. Com isso você poderia fazer com que o campo aceitasse somente números. Procure na internet por este tema. Creio que você deve encontrar algo de acordo com as suas necessidades.
Att.
Sergio Coutinho
Acho que no seu caso você poderia usar uma CHECK CONSTRAINT que utilizasse EXPRESSÕES REGULARES. Com isso você poderia fazer com que o campo aceitasse somente números. Procure na internet por este tema. Creio que você deve encontrar algo de acordo com as suas necessidades.
Att.
Sergio Coutinho
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
STCOUTINHO,
Value pela ajuda, ai vem mais uma dúvida
COmo faço isso em forms, só achei exemplos em select
precisava algo assim campo like ('ABC').
Mais não encontro nada, achei algo [:alpha:]
Mais não achei como implementar. você sabe algo?
Obrigada
Value pela ajuda, ai vem mais uma dúvida
COmo faço isso em forms, só achei exemplos em select
precisava algo assim campo like ('ABC').
Mais não encontro nada, achei algo [:alpha:]
Mais não achei como implementar. você sabe algo?
Obrigada
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Dá uma pesquisada por REGEXP aqui no fórum mesmo.
Você vai achar exemplos interessantes.
Segue abaixo um dos links que encontrei aqui, procurando por REGEXP,na parte de pesquisa:
Expressões Regulares
qualquer coisa, manda pra gente.
Você vai achar exemplos interessantes.
Segue abaixo um dos links que encontrei aqui, procurando por REGEXP,na parte de pesquisa:
Expressões Regulares
qualquer coisa, manda pra gente.
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Para algo como Javascript, acredito que não tenha.
Agora usando num when-validate da vida o regexp, dá para usar. Tenta algo assim:
Agora usando num when-validate da vida o regexp, dá para usar. Tenta algo assim:
IF REGEXP_LIKE(teste, '^[0-9]*$') THEN ....
END IF;
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
Lá vai mais dúvidas.
Fiz o select
Porém pede para declarar o regexp_like ou diz que não existe essa função
Fiz da seguinte maneira também
Fiz o select
SELECT * into v_retorno
FROM dual
WHERE regexp_like(campo, '^.*[[:upper:]].*$')
AND regexp_like(campo, '^.*[[:lower:]].*$')
AND regexp_like(campo, '^.*[0-9].*$')
AND regexp_like(campo, '^.*[^A-Z,0-9].*$') ;
Fiz da seguinte maneira também
SELECT TRANSLATE(campo, '^.*[[:alpha:]].*$')
INTO V_RETORNO FROM DUAL
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Teu banco é o 8 e funciona?? Estranho. Até onde sei, só apartir do 10 que a Oracle trouxe implementado.
De qualquer forma, dá uma olhada aqui:
http://phil-sqltips.blogspot.com/2009/0 ... le-9i.html
Ele tem a criação destas funções de REGEXP. Tenta com elas, não esquece o owner da função.
Em ÚLTIMO, último caso, podes colocar uma função dessa no forms. Mas não espero ser necessário isso.
De qualquer forma, dá uma olhada aqui:
http://phil-sqltips.blogspot.com/2009/0 ... le-9i.html
Ele tem a criação destas funções de REGEXP. Tenta com elas, não esquece o owner da função.
Em ÚLTIMO, último caso, podes colocar uma função dessa no forms. Mas não espero ser necessário isso.
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá Priajaf,
Então sua base de dados é Oracle 8i? Dê uma olhada neste artigo do TOM KYTE, que explica como criar uma check constraint mais "rebuscada":
http://asktom.oracle.com/pls/apex/f?p=1 ... 4419760368
No link acima, o TOM usou a função TRANSLATE para fazer a consistência de um campo alfanumérico. O bom nos artigos dele é que você consegue reproduzir o exemplo em seu ambiente.
Abraços,
Sergio Coutinho
Então sua base de dados é Oracle 8i? Dê uma olhada neste artigo do TOM KYTE, que explica como criar uma check constraint mais "rebuscada":
http://asktom.oracle.com/pls/apex/f?p=1 ... 4419760368
No link acima, o TOM usou a função TRANSLATE para fazer a consistência de um campo alfanumérico. O bom nos artigos dele é que você consegue reproduzir o exemplo em seu ambiente.
Abraços,
Sergio Coutinho
-
- Rank: DBA Pleno
- Mensagens: 297
- Registrado em: Ter, 21 Dez 2010 8:45 am
- Localização: Florianopolis
PO gente, brigadão pela ajuda.
Consegui fazer dessa forma.
E deu tudo certo, brigada mesmo pessoal.
Consegui fazer dessa forma.
SELECT replace(TRANSLATE((:cd_plano),'0123456789, !@#$%¨&*()_+=-´[]~Ç,.;<>''?ªº|\"./-ABCDEFGHIJKLMNOPQRSTUVWXYZÇ','0123456789'),' ')
into :cd_plano
FROM DUAL;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante