SQL-Abfrage als CSV-Datei

Gast #1603178
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
Gast #1603195
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...
Gast #1603360
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.
#1603370
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.
Gast #1603419
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.
Gast #1603497
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?
Gast #1603550
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
Gast #1610372
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren