Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Tabelleninhalte Export als SQL-Skript

Frage Microsoft Microsoft Office

Mitglied: n0ss0r

n0ss0r (Level 1) - Jetzt verbinden

15.12.2009, aktualisiert 13:30 Uhr, 6237 Aufrufe, 4 Kommentare

Hallo,

ich arbeite zur Zeit mit verschiedenen Datenbanken (z.B. Oracle 9i) und stehe gerade vor einer recht kniffligen Aufgabe im Zusammenhang mit Excel.
Ich wusste leider nicht, ob meine Frage besser in den Bereich "Datenbanken" oder "Excel" passt!?

Und zwar möchte ich eine Tabelle in ein fertiges SQL-Skript exportieren.

Sprich z.B. ein Makro schreiben, welches mir auf Knopfdruck alle Spalteninhalte mit den zugehörigen SQL-Befehlen ("INSERT") in eine .sql-Datei schreibt, sodass man bei Anpassungen der Datei nur auf einen Button drückt und sofort ein Skript hat, welches man dann später beim Kunden auf der Datenbank ausführen kann, um sie mit den Inhalten aus der Tabelle abzugleichen.

Ich dachte zunächst an eine Lösung im Zusammenhang mit ODBC, wobei mir dabei einfiel, dass das Problem an der ganzen Sache ist, dass derjenige, der die Tabelle bearbeitet, nicht zwangsläufig eine direkte Verbindung zur Datenbank hat.

Leider muss ich zugeben, dass ich mich mit Makros/VBA nicht sehr gut auskenne und hoffe deshalb, dass mir hier jemand helfen kann.


Grüße,
Thomas
Mitglied: Biber
15.12.2009 um 14:22 Uhr
Moin n0ss0r,

willkommen im Forum.
Zitat von n0ss0r:
Ich dachte zunächst an eine Lösung im Zusammenhang mit ODBC, wobei mir dabei einfiel,
dass das Problem an der ganzen Sache ist, dass derjenige, der die Tabelle bearbeitet,
nicht zwangsläufig eine direkte Verbindung zur Datenbank hat.

Aber dann ist doch erst recht erstrebenswert, wenn keine sofort aufzuführenden INSERT-Statements gegen die DB abgefeuert werden, sondern nur eine (versand-)fertige .sql-Datei erzeugt wird.

Wo liegt denn jetzt das Problem?
Ist eine asynchrone Verarbietung hinnehmbar oder braucht die Excel-tabelle Informationen darüber, welche Datensätze in die Oracle-Tabellen übernommen werden konnten?
Wenn ja - was müsste in der Excel-Klamotte gespeichert werden, welche Fehlerbehandlung ist erforderlich.
Wenn nein - dann würde ich die Automatisierung (wenn es keine regelmäßige Aktion ist) sogar ganz zurückstellen und die SQL-Generierung direkt in einer freien Spalte der Exceltabelle mit banalen Excelformeln+Copy&Paste abfackeln.

Grüße
Biber
Bitte warten ..
Mitglied: n0ss0r
15.12.2009 um 14:53 Uhr
Hi Biber,


zunächst mal ein einfaches Beispiel, wie die Tabelle aussehen kann:

Attribut Bezeichnung Use?

Test1 Bez1 X
Test2 Bez2
Test3 Bez3 X

Die Spalten "Attribut" und "Bezeichnung" sollen in korrespondierende Spalten in der Datenbank übernommen werden, während die Spalte "Use?" zur Selektion dient, sprich nur die mit einem "X" markierten Zeilen sollen in die Datenbank, bzw. das SQL-Skript übernommen werden.

So in etwa könnten die zu generierenden SQL-Statements aussehen:

01.
-- insert wanted attribute 
02.
INSERT INTO RM_ATTRIBUTE 
03.
	( IDSEQ, RESOURCETYPE, INTERNALNAME, NAME, MODUSER, MODTIME, CREATETIME) 
04.
VALUES 
05.
	( IDSEQ_SEQUENCE.NEXTVAL, 'Ressourcentyp', 'Attribut', 'Bezeichnung', 'initial', SYSDATE, SYSDATE) 
06.
/
Für 'Attribut' und 'Bezeichnung' hätte ich jetzt nur gerne die Inhalte der Spalten aus der Tabelle, das Ganze in dieser Form in einer .sql-Datei.

Deine Idee die SQL-Generierung in einer freien Spalte mit einfachen Formeln zu realisieren finde ich gar nicht mal so schlecht.
Man könnte überlegen die SQL-Statements in einer freien Spalte vorzubereiten, die Inhalte aus den Spalten hinzuzufügen und anschließend den Inhalt dieser Spalte irgendwie abzuspeichern.
Das Ganze schön in einem Makro verpackt.

Wie sähe da eine ungefähre Realisierung aus? Bessere Möglichkeiten?

Jedenfalls schon mal Danke für den Input!


Grüße,
Thomas
Bitte warten ..
Mitglied: Biber
15.12.2009 um 15:43 Uhr
Moin n0ss0r,

nochmal die Rückfrage, bevor wir unnötig irgendwohin loslaufen...
Man könnte überlegen die SQL-Statements in einer freien Spalte vorzubereiten, die Inhalte aus den Spalten hinzuzufügen
und anschließend den Inhalt dieser Spalte irgendwie abzuspeichern.
Das Ganze schön in einem Makro verpackt
Genau der letzte Satz ist die Frage...

?? Ist es denn eine regelmäßig wiederkehrende Aktion größeren Ausmaßes OHNE (nach menschlichem Ermessen) manuell erforderliche Eingriffe ??

Wenn ja --> dann isses automatisierbar --> meinetwegen einen Makro.
Wenn eher nein --> for what? "Halb automatisiert" lohnt sich sehr sehr selten.

Entweder die Klamotte kann (als Beispiel) unbeaufsichtigt jeden Mittwoch um 03:30 per Taskplaner gestartet werden,
oder aber es muss ein Mensch davor/dabeisitzen--> dann soll der auch alles auf dem Bildschirm sehen können.

Grüße
Biber
Bitte warten ..
Mitglied: n0ss0r
15.12.2009 um 16:01 Uhr
Hi Biber,

es ist als regelmäßige, im Zusammenhang mit Aktualisierungen und Veränderungen der gegebenen Tabellen, und wiederkehrende Aktion gedacht. Also, ja.

Es dient hauptsächlich zur Automatisierung und Vereinfachung des Ablaufs der Aktualiserung der Datenbank.

Wenn das System beim Kunden in Betrieb ist und wir Veränderungen vornehmen an unseren lokal vorhandenen Basis-Tabellen, soll die Möglichkeit bestehen die .sql-Datei daraus zu generieren und den Administratoren beim Kunden zur Einspielung in die Datenbank zu senden.

Meinetwegen einer unserer Mitarbeiter verändert die Tabelle, drückt auf einen Knopf --> Zack .sql-Datei da --> ab zum Kunden. Fertig.

So ist es gedacht.

Grüße
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Datenbanken
gelöst Postgre SQL Trigger oder nachgelagertes separates Skript? (4)

Frage von TheJoker2305 zum Thema Datenbanken ...

Datenbanken
gelöst Täglicher Export einer View aus MS SQL 2008 in Excel oder CSV (9)

Frage von Arafat zum Thema Datenbanken ...

Datenbanken
Problem beim Export aus dem SQL-Developer (4)

Frage von Roadrunner777 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...