Oracle
 sql >> Database >  >> RDS >> Oracle

Creazione di un file CSV per ciclo | PLSQL Oracle SQL Developer

Ecco un'opzione che utilizza SQLcl. SQLcl è il coraggio di SQLDEV ma racchiuso in una riga cmd. Inoltre essendo java sono disponibili le capacità di scripting di core java. Questo sta usando JavaScript come motore di scripting.

Abbiamo alcuni documenti e molti esempi di come funziona tutto su github qui: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();

    }
 }
/