Oracle - Ayuda: reemplazar ascii chr(13)

 
Vista:

Ayuda: reemplazar ascii chr(13)

Publicado por karina (53 intervenciones) el 21/03/2006 13:05:04
Hola la duda que tengo es que se "cuelan" retornos de carro en un campo cuando un usuario hace enter, no quiero que se guarden estos retornos,
que por cierto al visualizar un campo varchar2 se muestra así "||".
Al hacer un-> select chr(13) from dual el caracter retorno de carro que se muestra es '|', y al poner esta función en el campo afectado
de esta forma replace(tx_enunciado,chr(13),'') sólo me quita un '|' y no los dos '||', me dicen que en windows poner un retorno de carro en realidad es la combinación de dos códigos 10 y 13(podéis ver en el mapa de códigos ascii)
entonces debería poner algo así:
replace(replace(tx_enunciado,chr(10),''),chr(13),'')

Por favor si alguien sabe algo más de esto o una mejor forma de hacerlo le agradecería me ayudara.

Gracias de antemano
Karina
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:Ayuda: reemplazar ascii chr(13)

Publicado por uliseswarior (41 intervenciones) el 23/03/2006 15:22:37
Hola Karina, Mira no solo el retorno del carro es desplegado como '|' hay algunos otros caractes como el tabulador, tambien es mostrado de la misma forma, y algunos otros que solo se que su ascii es el 9.

Lo que yo he echo para saber cual es el ascci de estas barritas es llevarlo al SQL y primero lo copio y luego abro comilla simple y lo cierro, luego pego el valor dentro de las comillas para que me de el ascci del valor que me esa dando problema.

Ej.
================> ' ' <================ copia lo que esta dentro de las comilas simples y pegalo dentro de las comillas del select y asi podras obtener el ascii
SELECT ASCII('') from dual

cuando obtienes el valor ASCII ya lo podras remplazar
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:Ayuda: reemplazar ascii chr(13)

Publicado por karina (53 intervenciones) el 24/03/2006 23:03:38
Hola Uliseswarrior,

Gracias por responderme he estado mirando un poco más este asunto del retorno que es cuando alguien hace un "enter" o intro en un campo donde se introducen caracteres y se queda un caracter extraño que es el que te comento pero según he podido averiguar al hacer "enter" se guardan dos caracteres: el caracter de salto de línea y retorno de carro juntos en el campo de texto, me gustaría saber la forma más fiable de quitarlo de este campo que te comento para almacenarlo en la BD, pues al final he visto que lo de las barritas no es muy confiable y preferiría una función que me asegurase que estoy reemplazando el salto de línea y el retorno de carro no importe como se visualice, ten en cuenta que como es un caracter no imprimible o no visible no es muy confiable el sacarlo poniendo un caracter porque este parece que cambia según el programa con que lo visualices.

Gracias

Karina
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:Ayuda: reemplazar ascii chr(13)

Publicado por ulises (41 intervenciones) el 27/03/2006 22:06:03
Hola,
Mira, esta es la funcion que yo utilizo para remplazaresos caractes, y hasta el momento me ha funcionado, solo que yo lo utilizo mas en la lectura de acrchivos de texto o de excel por esos veras que tambien excluyo el codigo 39 que es el de la comilla simple, el codigo 10, 13 son los de fin de linea y los de retorno, el 27 es el esc, tambien veras el codigo 32 que es el tabulador , estos son los codigo que a mi me han dado problema en algunas ocaciones por lo que hice esta funcion para eliminarlos del string que recibo o que deceo guardar .

CREATE OR REPLACE FUNCTION REMPLAZAR(X_VALOR IN VARCHAR2) RETURN VARCHAR2 IS
V_VALOR VARCHAR2(2000);
BEGIN
select UPPER(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
replace(X_VALOR, CHR(11) ),
CHR(10) ),
CHR(13) ),
CHR(27) ),
CHR(32) ),
CHR(39)
)
) INTO V_VALOR
from DUAL t;

RETURN(V_VALOR);
END;
/

--Espero que te sirva
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:Ayuda: reemplazar ascii chr(13)

Publicado por Jack Blanck (1 intervención) el 09/01/2008 21:59:36
CREATE OR REPLACE PROCEDURE SP_FACT_ACTUALIZA_DOCUMENTO(
P_COD_EMP IN CHAR,
P_CODIGO_DOCUMENTO IN CHAR,
P_NUMERO_SERIE IN CHAR,
P_NUMERO_DOCUMENTO IN CHAR,
P_TIPO IN CHAR)
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:Ayuda: reemplazar ascii chr(13)

Publicado por Carlos H (1 intervención) el 13/01/2007 01:24:45
Definitivamente la mejor forma de hacerlo es como lo definiste inicialmente
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