Derby Export
2011 April 22
Beim Einsatz der Java Derby Datenbank kommt irgendwann der Wunsch einzelne Daten oder eine komplette Tabelle zu exportieren. Hierfür bietet Derby verschiedene Procedures an:
- SYSCS_UTIL.SYSCS_EXPORT_TABLE: Zum exportieren einer kompletten Tabelle
- SYSCS_UTIL.SYSCS_EXPORT_QUERY: Exportiert die Daten, die dem mitgegebenen SELECT entsprechen
- SYSCS_UTIL.SYSCS_BACKUP_DATABASE: Kompletter Backup der DB.
Die Export-Procedures liefern eine CSV-Datei, wobei man die Trennzeichen definieren kann.
Beim Backup-Procedure wird die ganze Ordnerstruktur in einen gewünschten Ordner kopiert.
Zum Exportieren einer ganzen Tabelle sieht die Signatur der Procedure wie folgt aus:
SYSCS_UTIL.SYSCS_EXPORT_TABLE ( IN SCHEMANAME VARCHAR(128), IN TABLENAME VARCHAR(128), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128) )
…für eine definierte Datenmenge
SYSCS_UTIL.SYSCS_EXPORT_QUERY( IN SELECTSTATEMENT VARCHAR(32672), IN FILENAME VARCHAR(32672), IN COLUMNDELIMITER CHAR(1), IN CHARACTERDELIMITER CHAR(1), IN CODESET VARCHAR(128) )
Beispielhaft (mit JPA)
public void exportTable()
{
final Object[] paras = new Object[6];
paras[0] = „DB-SCHEMA“;
paras[1] = „TABLE-NAME“;
paras[2] = „EXPORT-FILE-PATH.csv“;
// Column delimiter
paras[3] = ';';
// character delimiter
paras[4] = '|';
// Codeset
paras[5] = „UTF-8“;
callProcedure(„{call SYSCS_UTIL.SYSCS_EXPORT_TABLE (?,?,?,?,?,?)}“, paras);
}
public void exportData()
{
final Object[] paras = new Object[5];
paras[0] = „SELECT * FROM TABLE-NAME WHERE id IN (1, 2, 99) AND ...“;
paras[1] = „EXPORT-FILE-PATH.csv“;
// Column delimiter
paras[2] = ';';
// character delimiter
paras[3] = '|';
// Codeset
paras[4] = „UTF-8“;
callProcedure(„{call SYSCS_UTIL.SYSCS_EXPORT_TABLE (?,?,?,?,?,?)}“, paras);
}
public void callProcedure(final String sql, final Object... parameters)
{
final Query query = entityManager.createNativeQuery(sql);
int counter = 1;
for(Object o: parameters)
{
query.setParameter(i++, o);
}
}
Links:
- Derby DB: http://db.apache.org/derby/
- Derby Referenz Guide – Export Data: http://db.apache.org/derby/docs/10.7/ref/ref-single.html#rrefexportselectionproc
- Derby Referenz Guide – Export Table: http://db.apache.org/derby/docs/10.7/ref/ref-single.html#rrefexportproc
- Derby Referenz Guide – Backup: http://db.apache.org/derby/docs/10.7/ref/ref-single.html#rrefbackupdbproc
No comments yet