Olá,
Tenho uma tabela com campo cdRegistroGeral varchar(20)
tem algum jeito de formatar este registro para ser inserirdo como
xx.xxx.xxx.-xx
?
Mascara para RG em campo VARCHAR
-
- 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
Brother,
Já vi alguns "format_mask" no Report, se não me engano, mas, no PL mesmo, costumo fazer "na mão" quando preciso:;
Daí tem como dar uma melhorada, pois provavelmente utilizará zeros e tal, mas, fica ai a dica.
Qualquer coisa, manda pra gente.
Já vi alguns "format_mask" no Report, se não me engano, mas, no PL mesmo, costumo fazer "na mão" quando preciso:;
SELECT SUBSTR('27123456X',1,2)||'.'||
SUBSTR('27123456X',3,3)||'.'||
SUBSTR('27123456X',6,3)||'.'||
SUBSTR('27123456X',9,1) RG
FROM dual;
Qualquer coisa, manda pra gente.
-
- Rank: Analista Júnior
- Mensagens: 88
- Registrado em: Sex, 18 Ago 2006 11:13 am
- Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com
MSN / TALK - roberto.fernandes@gmail.com
TROQUE A STRING 'ABCDEFGHIJKLMNZ' PELO NUMERO DO RG
BERTOSRO 
SELECT SUBSTR(a.limpo,1,1)||'.'||SUBSTR(a.limpo,2,3)||'.'||SUBSTR(a.limpo,5,3)||'.'||
SUBSTR(a.limpo,8,3)||'.'||SUBSTR(a.limpo,11,4)||'-'||SUBSTR(a.limpo,15,2)
FROM (SELECT TO_CHAR(LPAD ('ABCDEFGHIJKLMNZ', 16, '0')) limpo
FROM DUAL) a

- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
Fiz o teste aqui e seu método está estranho. Para RG de qual estado você usou essa máscara?
Teste:
Usando um RG qualquer, por exemplo '222000348'
O retorno é:
0.000.000.222.0003-48
A máscara padrão de RG é 99.999.999-Y no estado de SP e em mais alguns estados, mas não existe um padrão nacional. Pode acontecer, inclusive, de duas pessoas de estados diferentes terem o mesmo número de RG. Talvez por isso tenha sido criado o CPF, um cadastro nacional.
Para usar o formato citado acima, podemos usar o seguinte:
ou
Dica: Para funcionar essa máscara, é interessante antes de usá-la, remover pontos e traços, caso existam.
Para fazer isso, dá pra usar o translate:
http://glufke.net/oracle/viewtopic.php? ... r+tra%E7os
Teste:
Usando um RG qualquer, por exemplo '222000348'
O retorno é:
0.000.000.222.0003-48
A máscara padrão de RG é 99.999.999-Y no estado de SP e em mais alguns estados, mas não existe um padrão nacional. Pode acontecer, inclusive, de duas pessoas de estados diferentes terem o mesmo número de RG. Talvez por isso tenha sido criado o CPF, um cadastro nacional.
Para usar o formato citado acima, podemos usar o seguinte:
select
SUBSTR(a.limpo,1,2)||'.'||
SUBSTR(a.limpo,3,3)||'.'||
SUBSTR(a.limpo,6,3)||'-'||
SUBSTR(a.limpo,9,1)
FROM (SELECT TO_CHAR(LPAD ('222504879', 9, '0')) limpo FROM DUAL) a
select
SUBSTR(a.limpo,1,2)||'.'||
SUBSTR(a.limpo,3,3)||'.'||
SUBSTR(a.limpo,6,3)||'-'||
SUBSTR(a.limpo,9,1)
FROM (SELECT TO_CHAR(LPAD ('22250487X', 9, '0')) limpo FROM DUAL) a
Dica: Para funcionar essa máscara, é interessante antes de usá-la, remover pontos e traços, caso existam.
Para fazer isso, dá pra usar o translate:
select translate('22.250.487-X',' .-', ' ') RG from dual
http://glufke.net/oracle/viewtopic.php? ... r+tra%E7os
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante