Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erstellen einer CSV-Datei pro Schleife | PLSQL Oracle SQL-Entwickler

Hier ist eine Option mit SQLcl. SQLcl ist der Kern von SQLDEV, aber in eine cmd-Zeile gewickelt. Da es sich um Java handelt, sind auch die Skriptfähigkeiten von Core Java verfügbar. Dies verwendet JavaScript als Skript-Engine.

Wir haben einige Dokumente und viele Beispiele dafür, wie das alles auf Github funktioniert, hier: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();

    }
 }
/