mikrocontroller.net

Forum: PC-Programmierung SQL-Abfrage als CSV-Datei


Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich suche ein Tool um eine SQL-Abfrage als CSV-Datei auszugeben,

diese Tool(Abfrage) soll ohne Installation auf einen PC (WIN XP / 2003) 
laufen.

DB Oracle 9i

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä? Bitte genauer beschreiben. Möchtest du eine Abfrage ausführen und 
das Ergebnis als CSV speichern?

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Bitte genauer beschreiben. Möchtest du eine Abfrage ausführen und
>> das Ergebnis als CSV speichern

Ja genau ...

Autor: Gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da würde ich dir zu C# raten und schnell selber schreiben, da bei 
solchen tools die verbindungsdaten eigentlich immer im klartext 
angegeben werden (Vertrauen in den Hersteller is so ne Sache) außer du 
sagst natürlich da steht eh nix wichtiges in der Datenbank, dann ist es 
ja egal.

Gruß
Matthias

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä? Programm? Klartext? Selber schreiben?

Kannste doch einfach in Excel machen und als CSV exportieren...

Autor: oracle-spezi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sqlplus ist das Oracle-Tool, was du suchst!

Noch kleiner Tip: schaue dir die Optionen:

spool datei.csv
set heading off;
set newpage none;
set linesize 150;
set colsep ';';

an! Mit denen sollte man das Query-Ergebnis so hinbasteln können, dass 
eine csv-Datei rauskommen sollte...

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> sqlplus ist das Oracle-Tool

muss nur leider zuvor installiert werden.

Zur Erklärung:
wir haben in unserem Krankenhaus eine Anwendung (KIS) die auf eine 
Oracle-DB
zugreift und eine integrierte SQL-Abfrage als Tool mitliefert, ist aber 
nach den letzten Updates so was von Grotten schlecht und langsam 
geworden ist (Java sei Dank), das ich eine Alternative suche.

Diese Abfrage die ich danach in einer CSV-Datei brauche muss auf 
verschiedenen PC erfolgen, nun möchte ich aber nicht auf den besagten PC 
ein Oracle-Client (SQL-Plus) installieren, da dieser sich sonst mir der 
RUNTime-Umgebung des besagten KIS-Programms beißen könnte.

Und es muss DAU Sicher sein :-) ... Icon anklicken fertig.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wird es wohl darauf hinaus laufen, via Compiler&Co ein EXE-Programm 
dafür zu basteln. Das ist zwar vergleichweise Höchststrafe, denn mit 
jeder beliebigen Scriptspache (Perl,Python,Ruby,...) mit 
Datenbankzugriff ist das einfacher, aber wahrscheinlich gibt es auf dem 
System auch keinerlei Scriptsprache - und die müsste i.d.R. installiert 
werden.

Autor: Foo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Java läuft auf den Rechnern und damit ist es ein leichtes, ein 
"doppelklickbares" .jar zu erstellen, welches die gewünschte Funktion 
auch schnell erledigt.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, aber das hat er ja schon und er ist nicht glücklich damit.

Java kriegt man manchmal schneller, indem man man den Virenscanner 
abschaltet oder die Java-Libs davon ausschliesst. Und genug Speicher 
beilegt.

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Foo

alle Umgebungen die das KIS-Programm braucht werden von diesem als 
RunTime mitgeliefert, dieses Programm ist sehr umfangreich und wird nur 
über einen Link zur einer EXE (Netzwerk) bereitgestellt.

Nach dem Starten, werden zwar eine menge Dateien temporär auf die Lokale 
Platte kopiert, aber es wird NICHTS installiert und somit gibt es auch 
keine Umgebung die man mit nutzen könnte.

Ich habe mir auch schon mal TOAD angesehen ... benötigt aber auch einen 
Oracle-Client.

Ich suche ein Tool womit man eine SQL-Abfrage erstellen /testen kann und 
was danach eine EXE daraus erzeugt ... so was muss es doch geben.

Autor: oracle-spezi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... für alle Tools, die nicht statisch mit den Oracle-Libs gelinkt sind, 
wirst du etwas auf den Clients benötigen! Entweder Oracle-Client oder 
einen Oracle-ODBC-Treiber.

Und ich denke mal, du wirst keinen Tool finden, was das Oracle-Zeugs 
alles intus hat, es sei denn, du schreibst es selbst.

Also installiere mindestens einen entsprechenden ODBC-Treiber auf den 
Clients und dir so ziemlich alle schicken Tools für deine Bedürfnisse 
zur Verfügung.

PS.: was macht ihr eigentlich, wenn sich die Oracle-Version ändert, muss 
dann auch das KIS-Programm ausgetaushct werden?

Autor: Ralf G. (old-school) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> wenn sich die Oracle-Version ändert ...

Der Server mit der Oracle-DB ist ausschließlich für das KIS-Programm 
vorgesehen.

>> was danach eine EXE daraus erzeugt ...

wenn ich mich recht erinnere gab es so was mal für DBase-DB mit Crystal 
Reports

Autor: Foo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, wie gesagt, ich wuerds in Java schreiben, es gibt auch Tools, die 
aus einem .jar eine .exe machen, falls auf den Clients kein JRE ist, 
kann man das IIRC auch mit in die exe packen...ob das dann aber 
schneller wird shrug

Autor: Bertram S. (bschall)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schauts mit einer QT Lösung aus?

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> QT Lösung ?

kann ich nicht mit anfangen ... was ist eine QT-Lösung

Autor: Foo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt hier mal Quick&Dirty:
import java.sql.*;
import java.io.*;

public class SchnelleAbfrage{

  static {
    try {
      Class.forName("dein.orrible.jdbc.treiber");
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
    
  public SchnelleAbfrage(){
    try {
      File file = new File("C:\\bla.csv");
      FileWriter fw = new FileWriter(file);
      Connection con = DriverManager.getConnection("url vom orrible server", "userid", "password");
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT FOO, BAR, QUUX FROM BLA");
      while(rs.next){
        fw.write(rs.getString(1) + ";" + rs.getInt(2) + ";" + rs.getBigDecimal(3) + "\n");
        fw.flush();
      }
      rs.close();
      stmt.close();
      con.close;
      fw.close;
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String args[]) {
    new SchnelleAbfrage();
  }
}

mit z.B. 
http://3d2f.com/programs/9-026-jnc-javanativecompi... 
machst du dir daraus eine .exe und lässt es laufen.

Schnell, effektiv und ohne was zu installieren.

Grüße

Autor: old-school (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Foo

besten Dank ...

werde ich auf jeden Fall ausprobieren, sobald ich Zeit finde

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.