SQL - Ocultar numeros con * con un subtring

 
Vista:

Ocultar numeros con * con un subtring

Publicado por Angela Gomez (5 intervenciones) el 21/08/2009 17:12:40
Buenos dias a Todos.

Necesito su ayuda para hacer lo siguiente:

Tengo un campo llamado NU_TARJETA que contiene 16 numeros y ya logre con un substring que solo me saliera en la consulta 11 numeros......

Ahora necesito que los otros 5 numeros me salgan ocultos con *.... me dijeron que se puede pero no se como...???

por fa, agradezco mucho su ayuda.

quedo atenta...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ocultar numeros con * con un subtring

Publicado por Rolando (28 intervenciones) el 21/08/2009 19:25:09
Si sabes que todos los NU_Tarjeta Tiene longitud 16 y que son siempre numeros de 16 digitos entonces FACIL :

Simplemente le concatenas en duro los 5 asteriscos.

1
select substring(NU_TARJETA ,1,11)+'*****' from TABLA

y la otra mas tecnica es :

1
select replace ( NU_TARJETA , substring(NU_TARJETA ,12,5),'*****'  ) from TABLA

Aqui se semplaza "solo para la consulta" de la posicion 12 a la 16 del campo NU_TARJETA con los valores de * que tu le pongas,

saludos

Rolando Lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por Angela Gomez (5 intervenciones) el 21/08/2009 19:56:07
Gracias por tu ayuda... me funciona pero no tan bien.. creo que estoy haciendo algo mal..

tal vez me puedas guiar... hago la funcion pero me sale este error:

(SUBSTR(a11.NU_TARJETA, 1, 11) + '*****')
*
ERROR at line 10:
ORA-01722: invalid number

o tambien este cuando cambio el + por la ,

SQL> /
(SUBSTR(a11.NU_TARJETA, 1, 11),'*****')||';'||
*
ERROR at line 2:
ORA-00907: missing right parenthesis

gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por Rolando (28 intervenciones) el 21/08/2009 21:08:41
Es exactamente ASI:

select replace ( NU_TARJETA , substring(NU_TARJETA ,12,5),'*****' ) from TABLA

Solo reemplaza el "TABLA" con el nombre de tu tabla donde esta el campo NU_TARJETA

las FUNCIONES SQL utilizadas son REPLACE y SUBSTRING , mira en la ayuda de SQL como es la dinamica de funcionamiento.

Saludos

Rolando lau
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por Angela Gomez (5 intervenciones) el 21/08/2009 22:18:59
Hola, si tienes razon...

se me olvidaba decirte que esoy trabajando por intermendio de una herramienta, y este campo NU_TARJETA esta amarrado a varias tablas entonces solo coloco la funcion (SubStr([NU_TARJETA]; 1,0; 11,0) + "*****") y por debajo hace el from con todas las tablas....

que pena molestarte tu me puedes explicar como funciona Applysimple, ya que la aplicacion no reconoce el SELECT por que lo trae implicito ya que es de consulta, tampoco reconoce el REPLACE pero este creo que no lo trae implicito.

muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por Well (1 intervención) el 12/02/2019 16:31:34
No funciona, si el número de tarjeta tiene varias coincidencias, por ejemplo:

1
SELECT REPLACE('1234567891234567',SUBSTR('1234567891234567',12,5),'*****') FROM DUAL;

devuelve:

12*****8912*****
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por victor antonio (1 intervención) el 21/04/2020 05:07:10
Buenas noches, yo necesito enmascarar los datos de una tarjeta de crédito de 16 dígitos, y que me muestre los primeros 4 dígitos y los últimos 4, en el medio de esos valores debe de salirme así *******.

Como hago para que funcione, ya que con esta función solo me muestra los primeros 4.

1
2
3
4
select distinct
user_id, user_name, user_email, user_doc_id,
RPAD(SUBSTR(user_phone, 1, 4), Length(user_phone), '*') as user_phone,
 t.transaction_from from bankzilla.security_tbl_user u, bankzilla.banking_tbl_transaction t;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ocultar numeros con * con un subtring

Publicado por Antonio (17 intervenciones) el 27/08/2009 10:37:12
select left(NU_TARJETA,11) & '*****'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar