Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Leer "Enter"

Estas en el tema de Leer "Enter" en el foro de Oracle en Foros del Web. Hola tengo una jsp con encoding iso-88589-1 que contiene un formulario con un input de type text y un textarea Si en el textarea escribo ...
  #1 (permalink)  
Antiguo 18/02/2008, 05:43
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Antigüedad: 18 años, 4 meses
Puntos: 0
Leer "Enter"

Hola

tengo una jsp con encoding iso-88589-1 que contiene un formulario con un input de type text y un textarea

Si en el textarea escribo un parrafo, pulso la tecla enter y escribo otro parrafo, en la base de datos oracle (el campo donde pongo el contenido del textarea es un varchar2) me aparece: parrafo1 || parrafo2, es decir no interpreta los enters como tal. Luego al hacer la select de ese campo aparecen los dos parrafos separados por un espacio.

el varchar2 deberia ser otro campo? hay algun detalle que se me escape por ahi? como lo puedo solucionar?

gracias

saludos
  #2 (permalink)  
Antiguo 18/02/2008, 06:45
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Re: Leer "Enter"

Hola,

El tipo varchar2 puede almacenar la representacion de nueva linea y control de carro, chr(10) y chr(13), lo que puedes hacer es utilizar la funcion dump para ver que caracteres se estan almacenando.

Código:
SQL> desc t1;
 Nombre                                    ┐Nulo?   Tipo
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER
 DATA1                                              VARCHAR2(30)

SQL> insert into t1 values (1,'linea' || chr(10) || 'linea');

1 fila creada.

SQL> commit;

Confirmaci¾n terminada.

SQL> select * from t1;

        ID DATA1
---------- ------------------------------
         1 linea
           linea


SQL> select dump(data1) from t1;

DUMP(DATA1)
--------------------------------------------------------------------------------
Typ=1 Len=11: 108,105,110,101,97,10,108,105,110,101,97
Fijate que 108,105,110,101,97 es la representacion de la palabra "linea", seguido de un 10, que es la nueva linea, y finalmente se repite el patron.

Una vez identificado que valor esta guardando la aplicacion, solo tienes que saber que necesita el control textarea para dibujar una linea nueva.

Saludos
  #3 (permalink)  
Antiguo 18/02/2008, 07:09
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Leer "Enter"

Asi es, Matanga tiene razon.

En principio, el oracle no cambie el caracter especial del enter por un espacio,
un "dump" es una buena opcion, tambien otra es tirar el texto usando

Código:
dbms_output.put_line(' ');
y si se es cierto que el "enter" esta, aparecera el texto en tantos renglones como enter's tenga.

Sldo Atte, Mario.
  #4 (permalink)  
Antiguo 18/02/2008, 09:09
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Leer "Enter"

gracias

pero hay una cosa que no acabo de entender

parece que esta bien insertado en la base de datos

entonces, cuando la select y lo recogo, lo quiero escribir en un texto plano, no en otro textarea. que tendria que ir mirando el dump de cada letra y que cuando sea 10 que haga un <br>?

no se si me he explicado bien

saludos
  #5 (permalink)  
Antiguo 18/02/2008, 09:15
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Re: Leer "Enter"

Hola,

Poco se de HTML, pero si en la base de datos hay un chr(10) y lo tienes que transformar a <br>, puedes utilizar la funcion replace.

Código:
SQL> select id, replace(data1,chr(10),'<br>') data1 from t1;

        ID DATA1
---------- --------------------
         1 linea<br>linea
Lo que no se si existe una forma diferente de decirle a un control textarea que dibuje una nueva linea.

Saludos
  #6 (permalink)  
Antiguo 18/02/2008, 09:46
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Leer "Enter"

ya esta

con lo del replace ya me funciona bien

gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:09.