Oracle
 sql >> Base de données >  >> RDS >> Oracle

Création d'un fichier CSV par Boucle | Développeur PLSQL Oracle SQL

Voici une option utilisant SQLcl. SQLcl est le courage de SQLDEV mais enveloppé dans une ligne cmd. Étant également Java, les capacités de script du noyau Java sont disponibles. Cela utilise JavaScript comme moteur de script.

Nous avons une documentation et de nombreux exemples de la façon dont tout cela fonctionne sur github ici :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();

    }
 }
/