Shape1 Shape2

Copyright 2010 le coin du dba oracle

Shape4

Le coin du DBA Oracle

All rights reserved

Oracle est une marque déposée d'Oracle Corporation

2006_0815aout_canal20060093 DBA Oracle
Shape1

Procédure trouvé sur le net (merci à la personne l'ayant mis a disposition, malheureusement je ne me souviens plus de l'adresse) permettant d'extraire une table afin de le transférer dans un fichier au format CSV.(Télécharger le script)


create or replace procedure dump_table_to_csv( p_tname in varchar2,                        ---Le nom de la table a exporter

                                                 p_dir   in varchar2,                                        ---Le nom du répertoire oracle dans lequel on doit réaliser l'export

                                                 p_filename in varchar2 )                                ---Le nom du fichier export

  is

      l_output        utl_file.file_type;

      l_theCursor     integer default dbms_sql.open_cursor;

      l_columnValue   varchar2(4000);

      l_status        integer;

      l_query         varchar2(1000)

                      default 'select * from ' || p_tname;

      l_colCnt        number := 0;

      l_separator     varchar2(1);

      l_descTbl       dbms_sql.desc_tab;

  begin

      l_output := utl_file.fopen( p_dir, p_filename, 'w',32760 );

      execute immediate 'alter session set nls_date_format=''dd-mon-yyyy hh24:mi:ss''';

 

      dbms_sql.parse(  l_theCursor,  l_query, dbms_sql.native );

      dbms_sql.describe_columns( l_theCursor, l_colCnt, l_descTbl );

 

      for i in 1 .. l_colCnt loop

          utl_file.put( l_output, l_separator || '"' || l_descTbl(i).col_name || '"');

          dbms_sql.define_column( l_theCursor, i, l_columnValue, 4000 );

          l_separator := ',';

      end loop;

      utl_file.new_line( l_output );

 

      l_status := dbms_sql.execute(l_theCursor);

 

      while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop

          l_separator := '';

          for i in 1 .. l_colCnt loop

              dbms_sql.column_value( l_theCursor, i, l_columnValue );

              utl_file.put( l_output, l_separator || l_columnValue );

              l_separator := ',';

          end loop;

          utl_file.new_line( l_output );

      end loop;

      dbms_sql.close_cursor(l_theCursor);

      utl_file.fclose( l_output );

 

      execute immediate 'alter session set nls_date_format=''dd-MON-yy'' ';

  exception

      when others then

          execute immediate 'alter session set nls_date_format=''dd-MON-yy'' ';

          raise;

  end;

  /

Shape2

Scripts Oracle Procédure d'export de table au format CSV texte