Zum Inhalt springen

von Oracle nach Access/Excel exportieren??


JAY_Fisi

Empfohlene Beiträge

Einfach ein Flatfile erstellen und dort die Inhalte durch Delimiter getrennt reinschreiben.


SET HEADING OFF

SET NEWPAGE NONE

SET FEEDBACK OFF

SPOOL exp_file.txt


SELECT spalte1 || ',' || spalte2

FROM tabelle;


SPOOL OFF

Der Import geht vermutlich mit VB-Script. Da können andere aber sicher mehr zu sagen. Ich kann nur UNIX-Shellprogramierung. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Exp erstellt ein dmp-File, das format ist aber nicht unbedingt Excel kompatibel...

Da Excel aber gut mit CSV-Dateien klarkommt...

HIer die PL/SQl Lösung, müßte ab 8i funktionieren (benötigt aber ein UTL-File Directory wo es die Datei hinschreiben kann--> DB-Admin fragen)


create or replace function  dump_csv( p_query     in varchar2,

                                      p_separator in varchar2 default ',',

                                      p_dir       in varchar2 ,

                                      p_filename  in varchar2 )

return number

is

    l_output        utl_file.file_type;

    l_theCursor     integer default dbms_sql.open_cursor;

    l_columnValue   varchar2(2000);

    l_status        integer;

    l_colCnt        number default 0;

    l_separator     varchar2(10) default '';

    l_cnt           number default 0;

begin

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


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


    for i in 1 .. 255 loop

        begin

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

            l_colCnt := i;

        exception

            when others then

                if ( sqlcode = -1007 ) then exit;

                else

                    raise;

                end if;

        end;

    end loop;


    dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000 );


    l_status := dbms_sql.execute(l_theCursor);


    loop

        exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );

        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 := p_separator;

        end loop;

        utl_file.new_line( l_output );

        l_cnt := l_cnt+1;

    end loop;

    dbms_sql.close_cursor(l_theCursor);


    utl_file.fclose( l_output );

    return l_cnt;

end dump_csv;

/

Schreibt den output eines beliebigen Selects in ein flat-file.

allerdings noch direkt, also ohne kopie, wozu braucht ihr denn die kopie ?

Ansonsten vorher noch ein create table backup_table as select.....(dein select)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das geht natürlich nicht mit exp, da die dabei erzeugten Dumps nur von Oracle und nicht von Office-Produkten gelesen werden können. Wenn es einfach nur um die Sicherung bestimmter Daten auf Band geht, dann ist exp das Mittel der Wahl.

Für den Import nach Excel erzeugst du ein (oder mehrere) Flatfiles (mit dem o.g. SQL) und öffnest diese(s) Datei(en) in Office.

Wird die Sicherung nur für den Import benötigt? Oder zu späteren Wiederherstellung in der Datenbank?

Edit: johnhaltonx drängelt ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...