# Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB



## Alex_winf01 (7. Dez 2007)

Ich habe folgendes Problem:

Ich möchte meine Daten aus der DB in eine csv-Datei speichern. Im Handbuch von H2-Database steht:


```
SimpleResultSet rs = new SimpleResultSet();
rs.addColumn("NAME", Types.VARCHAR, 255, 0);
rs.addColumn("EMAIL", Types.VARCHAR, 255, 0);
rs.addColumn("PHONE", Types.VARCHAR, 255, 0);
rs.addRow(new String[]{"Bob Meier", "bob.meier@abcde.abc", "+41123456789"});
rs.addRow(new String[]{"John Jones", "john.jones@abcde.abc", "+41976543210"});

Csv.write("test.csv", rs, null);
```

Das ich vorher natürlich noch 
	
	
	
	





```
import org.h2.tools.*;
```
 machen muss ist mir klar. Aber: Ich bekomme eine Fehlermeldung, dass 
	
	
	
	





```
Csv.write("test.csv", rs, null);
```
 nicht geht. Seltsam nur, in der Weboberfläche geht der Behfel 
	
	
	
	





```
CALL CSVWRITE('test.csv', 'SELECT * FROM TEST');
```

Ich bekomme die Fehlermeldung, dass .write eine non-static ist.

Wenn ich statt 
	
	
	
	





```
Csv.write()
```
 folgenden Code eingebe 
	
	
	
	





```
CSVWRITE()
```
 bekomme ich auch eine Fehlermeldung.

Ich möchte doch nur ganz simpel meine Daten aus der DB in eine csv-Datei schreiben. Wer kann helfen?


----------



## robertpic71 (7. Dez 2007)

1. Das Beispiel funktioniert wenn man sich vorher eine Instanz holt.



> Csv csv = Csv.getInstance();
> csv.write("test.csv", rs, null);



2. Es geht auch über den SQL-Befehl.
Genau so, wie du das CSV-Schreiben in der Weboberfläche eingibst, könntest du es auch als SQL-Befehl absetzen:

also eine Statement erzeugen und dann


> stmt.execute("CALL CSVWRITE('test.csv', 'SELECT * FROM TEST')");



3. Ist das sowieso das falsche Beispiel für dich.

In dem Beispiel aus der H2 Doku geht es darum, ein CSV ohne Daten aus Datenbank zu erstellen.

In deinem Fall machst du ein:



> ResultSet rs = sqlStmt.executeQuery("SELECT * FROM TEST");
> Csv csv = Csv.getInstance();
> csv.write("test.csv", rs, null);


Damit werden die Daten aus dem Select verwendet. 

/Robert


----------



## SlaterB (7. Dez 2007)

lies mal hier, da ist zwischendurch auch von static die Rede
http://www.java-forum.org/de/viewtopic.php?p=359589


----------

