Me refiero a la hora de realizar un insert...
Si me teclea 38 grabar 038 y si pone XL grabarlo con 3 posiciones añadiendo espacios... no en PL/SQL... en una instrucción solamente. Si se puede.
![Neurótico](http://static.forosdelweb.com/fdwtheme/images/smilies/scared.png)
| ||||
Respuesta: Oracle y campos alfanuméricos _Eso implicaría: - Usar un tipo de dato VARCHAR2(3) - Administrar el formato en la aplicación. Intentarlo en la sentencia es perder el tiempo, en programación se resuelve mucho mejor y más rápido, además de no hacerle hacer a Oracle tareas superfluas para su funcionamiento. Simplemente lo pones en el método de validación del dato.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
![]() La cuestión es que el usuario en una pantalla me introduce la talla, en cualquiera de los dos formatos que antes he planteado, y yo al grabarla debo hacerlo con el formato numérico (038) o con el de cadena (XLb, siendo b blanco). ¿Sabes como puedo? ![]() |
| ||||
Respuesta: Oracle y campos alfanuméricos Insisto: Eso lo tienes que resolver en la aplicación ¿No has programado ningún método para validar la entrada del usuario? El tema es resolver si lo que te está entrando es un dato correcto: Simplemente saber si ingresó sólo números, caso en el que lo formateas con ceros, o si ingresó S, M, L, XL, XXL, o cualquier string aceptable, caso en el que simplemente lo envías. No nos olvidemos que las aplicaciones se deben crear APDEEI, o como se dice en Argentina: APDB (el acrónimo lo puedo explicar por línea privada, pero trata de imaginarlo). Es la parte aburrida y fundamental de programa: Validar. En cualquiera de las dos situaciones mencionadas, la cosa es asunto de la aplicación.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
![]() ![]() Gracias. ![]() |
| ||||
Respuesta: Oracle y campos alfanuméricos ¿Podrías aclarar qué estás usando?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: Oracle y campos alfanuméricos Cita: Muy bonito, pero el problema es determinar si lo que está ingresando en un número o un string...Yo le sugeriría usar INSTR() en un ciclo para verificar que no haya letras o números y de allí partir.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
![]() Por cierto, al final lo he hecho así, por si a alguien le sirve: SELECT DECODE(SUBSTR(TRIM(TRANSLATE(TRIM(<campo talla>), '01234567890', '**********')), 1, 1), '', ' ', '*', TRIM(TO_CHAR(<campo talla>, '000')), LPAD(<campo talla>, 3)) FROM DUAL; porque al final el campo talla no se sabe si va a ser numérico (038, 38,...) o alfabético (XL, bXL, L,... siendo b blanco). Gracias por vuestra colaboración. Salu2. ![]() |