Hola:
Quiero hacer esto.
El campo
codigopostal de la tabla system.PROVINCIAS, se debe de extraer como tipo numérico,
por lo que será necesario una transformación de las provincias cuyo código postal empiece por
‘0’.
He hecho este primer código.
Código SQL:
Ver originalSET serveroutput ON
-- Crear o reemplazar directorio.
CREATE OR REPLACE DIRECTORY directorio AS '/home/usuario';
-- Dar permiso directorio.
-- GRANT read, write ON DIRECTORY directorio to usuario;
-- Escritura del fichero.
DECLARE
Linea VARCHAR2(10000);
v_archivo UTL_FILE.FILE_TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('Creando archivo...');
v_archivo := UTL_FILE.FOPEN('DIRECTORIO914', 'PROVINCIAS.dat', 'w');
DBMS_OUTPUT.PUT_LINE('Archivo creado.');
DBMS_OUTPUT.PUT_LINE('Leyendo la tabla y escribiendo en el archivo...');
FOR COLUMNA IN (SELECT * FROM SYSTEM.PROVINCIAS) LOOP
Linea := COLUMNA.PROVINCIA || '|' || COLUMNA.CODIGOPOSTAL || '|' || COLUMNA.DESCRIPCION || '|' || COLUMNA.ZONA;
UTL_FILE.PUT_LINE(v_archivo, Linea);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Archivo cerrado.');
DBMS_OUTPUT.PUT_LINE('------ FIN DE IMPRESION ------');
UTL_FILE.FCLOSE(v_archivo);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
Lo que hace arriba es leer tabla que está en system.PROVINCIAS, crear un archivo llamado PROVINCIA.dat y guardar la información de la tabla en dicho archivo.
Solo me falta lo indicado arriba.
Saludos.