sql >> Databasteknik >  >> RDS >> Oracle

Skapa en CSV-fil per loop | PLSQL Oracle SQL-utvecklare

Här är ett alternativ som använder SQLcl. SQLcl är magkänslan hos SQLDEV men insvept i en cmd-rad. Även som java är skriptförmågorna för kärn-java tillgängliga. Detta använder JavaScript som skriptmotor.

Vi har några dokument och massor av exempel på hur allt fungerar på github här: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();

    }
 }
/



  1. Looping cursor kastar fel att markören inte är definierad

  2. Sammanfoga tabeller baserat på maxvärdet

  3. MySQL ger ett okänt kolumn 'user.id' i 'field list'-fel med Djangos automatiska id

  4. MySQL tror att underfrågan härleds när den inte är det!