![]() |
Retorno De Carro, Salto De Linea En Plsql Hola!! Soy nuevo en este foro y tengo un problema con un plsql, a ver si alguien sabe darme una idea :) Me estan pasando un fichero de array de bites desde java para que lo desglose con un plsql, tiene la siguiente forma: [73, 68, 83, 72, 80, 124, 78, 79, 77, 67, 79, 77, 80, 76, 69, 84, 79, 124, 78, 79, 77, 82, 79, 84, 85, 76, 65, 82, 124, 78, 79, 77, 67, 79, 82, 84, 79, 124, 71, 69, 78, 69, 82, 73, 67, 79, 124, 78, 79, 77, 66, 85, 83, 81, 85, 69, 68, 65, 124, 78, 79, 77, 78, 79, 77, 84, 73, 80, 79, 95, 67, 124, 78, 79, 77, 78, 79, 77, 84, 73, 80, 79, 95, 69, 13, 10, 55, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 114, 97, 105, 107, 105, 110, 13, 10, 50, 48, 50, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 114, 97, 105, 107, 105, 110, 13, 10, 57, 48, 50, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 114, 97, 105, 107, 105, 110, 13, 10, 49, 55, 55, 56, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 46, 116, 101, 115, 116, 100, 99, 124, 101, 100, 105, 102, 105, 99, 105, 111, 124, 101, 114, 97, 105, 107, 105, 110] Se que el retorno de carro es el caracter 13 y el salto de linea es el 10. Mis pregunta son ¿Existe alguna función dentro de un paquete en el que pueda hacer el retorno de carro y el salto de linea? Estoy usando UTL_FILE para abrir ficheros, ¿existe dentro de este paquete alguna función que me almacene temporalmente un fichero en la base de datos y luego borrarlo?. Llevo poco programando el PLSQL y una ayudita me vendria genial. Gracias de antemano :) |
Re: Retorno De Carro, Salto De Linea En Plsql Hola, Cita:
Cita:
Código: SQL> CREATE TABLE files ( |
Re: Retorno De Carro, Salto De Linea En Plsql Matanga, muchisimas gracias por ayudarme. Me han servido de guia tus aclaraciones. De nuevo mil gracias ;) |
Re: Retorno De Carro, Salto De Linea En Plsql Por nada :) Saludos |
Re: Retorno De Carro, Salto De Linea En Plsql Esta ha sido mi solución final DECLARE v_file CLOB := 'IDSHP|CAMPO1|CAMPO2|CAMPO3|CAMPO4|CAMPO5|CAMPO6|C AMPO7|'||CHR(10)||CHR(13)||'1|REG1|REG2|REG3|REG4| REG5| REG6|REG7|'||CHR(10)||CHR(13); v_texto_linea VARCHAR2(4000); v_long INTEGER; v_contini PLS_INTEGER; v_initline PLS_INTEGER; v_salto VARCHAR2(10); v_chunk_size INTEGER := 0; v_cont PLS_INTEGER; v_campo_idshp VARCHAR2(32); BEGIN v_cont := 1; v_contini := 0; v_initline := 1; v_salto :=CHR(10)||CHR(13); --salto de carro LOOP v_contini := DBMS_LOB.INSTR(v_file,v_salto,v_initline,1); v_chunk_size := v_contini - v_initline; DBMS_LOB.READ(v_file, v_chunk_size, v_initline, v_texto_linea); v_long := DBMS_LOB.GETLENGTH(v_texto_linea); v_initline := v_contini + 2; IF v_cont = 1 THEN v_campo_idshp := SUBSTR(v_texto_linea, 1, INSTR(v_texto_linea, '|') - 1); v_texto_linea := SUBSTR(v_texto_linea, INSTR(v_texto_linea, '|') + 1, LENGTH(v_texto_linea)); END IF; dbms_output.put_line(v_campo_idshp); dbms_output.put_line(v_texto_linea); END LOOP; END; Bueno puedo ir quedandome con los nombres de campo o registros que necesite leyendo desde cada separador de campo "|", si quiero ir a que me desglose los registros tendre que meter un contador en el loop y sumando 1 (cont := cont +1). Y me ha funcionado bien , de nuevo gracias a los que me han ayudado |
| La zona horaria es GMT -6. Ahora son las 19:55. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.