После получения некоторых ответов текущая ситуация такова, что я использую этот совет: http://www.ibm.com/developerworks/xml/library/x-tipbigdoc5.html (Листинг 1. Превращение ResultSets в XML) и XMLWriter для Java из http://www.megginson.com/downloads/
, По сути, он считывает дату из базы данных и записывает их в файл в виде символов, используя имена столбцов для создания открывающих и закрывающих тегов. При этом мне нужно внести два изменения в поток ввода, а именно в даты и числа.
// Iterate over the set
while (rs.next()) {
w.startElement("row");
for (int i = 0; i < count; i++) {
Object ob = rs.getObject(i + 1);
if (rs.wasNull()) {
ob = null;
}
String colName = meta.getColumnLabel(i + 1);
if (ob != null ) {
if (ob instanceof Timestamp) {
w.dataElement(colName, Util.formatDate((Timestamp)ob, dateFormat));
}
else if (ob instanceof BigDecimal){
w.dataElement(colName, Util.transformToHTML(new Integer(((BigDecimal)ob).intValue())));
}
else {
w.dataElement(colName, ob.toString());
}
} else {
w.emptyElement(colName);
}
}
w.endElement("row");
}
SQL, который получает результаты, имеет команду to_number
(например, to_number(sif.ID) ID
) и команду to_date
(например, TO_DATE (sif.datum_do, 'DD.MM.RRRR') datum_do
). Проблема в том, что возвращаемая дата - это временная метка, то есть я не получаю 14.02.2010
, а скорее 14.02.2010 00:00:000
, поэтому мне нужно отформатировать ее в формате dd.mm.yyyy
. Вторая проблема - числа; по какой-то причине они находятся в базе данных как varchar2
и могут иметь начальные нули, которые необходимо удалить; Я предполагаю, что я мог бы сделать это в моем SQL с помощью функции trim
, поэтому Util.transformToHTML
не требуется (для пояснения, вот метод):
public static String transformToHTML(Integer number) {
String result = "";
try {
result = number.toString();
} catch (Exception e) {}
return result;
} * * тысяча двадцать-один
Что я хотел бы знать, так это
а) Могу ли я получить дату в нужном мне формате и пропустить дополнительную обработку, сокращая
время обработки?
б) Есть ли лучший способ сделать это? Мы говорим о файлах XML, которые находятся в категории размером от 50 МБ до 250 МБ.