Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Criando um arquivo CSV por Loop | Desenvolvedor PLSQL Oracle SQL


Aqui está uma opção usando SQLcl. SQLcl é a essência do SQLDEV, mas encapsulado em uma linha cmd. Também sendo java, as habilidades de script do núcleo java estão disponíveis. Isso está usando JavaScript como o mecanismo de script.

Temos alguns documentos e muitos exemplos de como tudo isso funciona no github aqui: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();

    }
 }
/