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


von old-school (Gast)


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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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

von old-school (Gast)


Lesenswert?

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

Ja genau ...

von Gonzo (Gast)


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

von Manuel (Gast)


Lesenswert?

Hä? Programm? Klartext? Selber schreiben?

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

von oracle-spezi (Gast)


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

von old-school (Gast)


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.

von (prx) A. K. (prx)


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.

von Foo (Gast)


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.

von (prx) A. K. (prx)


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.

von old-school (Gast)


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.

von oracle-spezi (Gast)


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?

von Ralf G. (old-school) Benutzerseite


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

von Foo (Gast)


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

von Bertram S. (bschall)


Lesenswert?

Wie schauts mit einer QT Lösung aus?

von old-school (Gast)


Lesenswert?

>> QT Lösung ?

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

von Foo (Gast)


Lesenswert?

So, jetzt hier mal Quick&Dirty:
1
import java.sql.*;
2
import java.io.*;
3
4
public class SchnelleAbfrage{
5
6
  static {
7
    try {
8
      Class.forName("dein.orrible.jdbc.treiber");
9
    } catch (ClassNotFoundException e) {
10
      e.printStackTrace();
11
    }
12
  }
13
    
14
  public SchnelleAbfrage(){
15
    try {
16
      File file = new File("C:\\bla.csv");
17
      FileWriter fw = new FileWriter(file);
18
      Connection con = DriverManager.getConnection("url vom orrible server", "userid", "password");
19
      Statement stmt = con.createStatement();
20
      ResultSet rs = stmt.executeQuery("SELECT FOO, BAR, QUUX FROM BLA");
21
      while(rs.next){
22
        fw.write(rs.getString(1) + ";" + rs.getInt(2) + ";" + rs.getBigDecimal(3) + "\n");
23
        fw.flush();
24
      }
25
      rs.close();
26
      stmt.close();
27
      con.close;
28
      fw.close;
29
    } catch (Exception e) {
30
      e.printStackTrace();
31
    }
32
  }
33
34
  public static void main(String args[]) {
35
    new SchnelleAbfrage();
36
  }
37
}

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

Schnell, effektiv und ohne was zu installieren.

Grüße

von old-school (Gast)


Lesenswert?

@  Foo

besten Dank ...

werde ich auf jeden Fall ausprobieren, sobald ich Zeit finde

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.