sql >> Base de Datos >  >> RDS >> Oracle

Creación de un archivo CSV por bucle | Desarrollador PLSQL Oracle SQL

Aquí hay una opción usando SQLcl. SQLcl es el núcleo de SQLDEV pero envuelto en una línea cmd. Además, al ser Java, las capacidades de creación de scripts de Core Java están disponibles. Esto está utilizando JavaScript como motor de secuencias de comandos.

Tenemos algunos documentos y muchos ejemplos de cómo funciona todo esto en github aquí:https://github.com/oracle/oracle-db-tools/tree/master/sqlcl

script
 var binds = {};

// get complete list of tables
 var tables = util.executeReturnList("select table_name from user_tables", binds);

 for (i = 0; i < tables.length; i++) {
   // get count of rows
    var rows = util.executeReturnOneCol('select count(1)  from ' +  tables[i].TABLE_NAME );
    ctx.write( tables[i].TABLE_NAME + ">>"  + rows + " \n" ) ;

    // if more than zero dump to a csv file
    if ( rows > 0 ){
        sqlcl.setStmt("set sqlformat csv ")
        sqlcl.run();
        sqlcl.setStmt("spool " + tables[i].TABLE_NAME + ".csv")
        sqlcl.run();

        sqlcl.setStmt("select * from  " + tables[i].TABLE_NAME )
        sqlcl.run();
        sqlcl.setStmt("spool off")
        sqlcl.run();

    }
 }
/