Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Oracle

Respuesta
 
Herramientas Desplegado
Antiguo 18-feb-2008, 04:43   #1 (permalink)
Cruces ' 84 ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
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
Cruces ' 84 está desconectado   Responder Citando
Antiguo 18-feb-2008, 05:45   #2 (permalink)
matanga ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 494
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
matanga está desconectado   Responder Citando
Antiguo 18-feb-2008, 06:09   #3 (permalink)
MarioHeredia ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cordoba, Argentina
Mensajes: 82
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.
MarioHeredia está desconectado   Responder Citando
Antiguo 18-feb-2008, 08:09   #4 (permalink)
Cruces ' 84 ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
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
Cruces ' 84 está desconectado   Responder Citando
Antiguo 18-feb-2008, 08:15   #5 (permalink)
matanga ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 494
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
matanga está desconectado   Responder Citando
Antiguo 18-feb-2008, 08:46   #6 (permalink)
Cruces ' 84 ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2005
Mensajes: 13
Re: Leer "Enter"

ya esta

con lo del replace ya me funciona bien

gracias
Cruces ' 84 está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 2 votos, 4,50 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 11:39.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93