sql >> データベース >  >> RDS >> Oracle

ループごとにCSVファイルを作成する| PLSQL Oracle SQL Developer

    SQLclを使用するオプションは次のとおりです。 SQLclはSQLDEVの本質ですが、cmd行にラップされています。また、Javaであるため、コアJavaのスクリプト機能も利用できます。これは、スクリプトエンジンとしてJavaScriptを使用しています。

    githubでこれがどのように機能するかについてのドキュメントと例がたくさんあります: 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. SQLテーブルから(複数の列の値に基づいて)重複する行を削除する

    2. OracleでLONGをvarcharに変換する

    3. OracleCommandBuilder.DeriveParameters()がOracleExceptionをスローします:ORA-06564:オブジェクトが存在しませんORA-06512:SYS.DBMS_UTILITYにあります

    4. 日時をSQLサーバー(日時タイプ)に保存する場合、どの形式で保存しますか?