Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

von Oracle nach Access/Excel exportieren??

Empfohlene Antworten

Veröffentlicht

Hallo

Gibt es die Möglichkeit von einer Oracle Datenbank Tabellen nach Excel oder Access zu exportieren? Das ganze sollte per Skript realisiert werden....:(

Wäre supi wenn mir da jemand Tipps zu geben könnte :)

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. ;)

Hm....sorry habe noch was vergessen:

Und zwar sollten die Tabellen erst irgendwo gesichert werden auf nem Band oder nem anderen Server etc...und dann in Excel exportiert werden:confused:

?

Was hindert dich daran, exp aufzurufen?

Hab ehrlichgesagt keinerlei Ahnung von Oracle....

Kann also auch nicht nachvollziehen was exp ist?

...soll aber ein Skript schreiben was die Tabellen erst sichert und dann automatisch nach Access/Excel exportiert....

geht das mit exp?

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)

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 ;)

Danke :) Ich versuch das mal so

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.