SQL-Abfrage als CSV-Datei

Gast
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
Gast
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...
Gast
>> 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.
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.
Gast
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.
Gast
@ 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.
Gast
... 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?
Gast
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.