我有一个sql语句,它从数据库中选择一些具有某些条件的表,并将它们放在临时文件中。
在同一个数据库中有一个名为CreationDate的字段,它是空的
protected int doWork() throws Exception {
String data = "";
File tempFile = File.createTempFile("Test",".txt");
Connection db_cn = currentDataSource.getDbConnection();
Statement select_stmt = db_cn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
ResultSet r_set;
String str_sql = "select sap, og_id, kz, sap_order from database where status='A' and ver_status is null order by og_id, kz, sap, sap_order";
r_set = select_stmt.executeQuery(str_sql);
FileWriter fileWriter = new FileWriter(tempFile.getCanonicalPath(), true);
BufferedWriter bw = new BufferedWriter(fileWriter);
while (r_set.next()) {
String sap = r_set.getString("SAP");
String id = r_set.getString("OG_ID");
String kz = r_set.getString("KZ");
String order = r_set.getString("SAP_ORDER");
data = sap + "\t" + id "\t" + kz "\t" + order + "\n";
bw.write(data);
}
bw.close();
fileWriter.close();
r_set.close();
select_stmt.close();
return 0;
}
代码运行后,它会创建临时文件,其中是我从数据库中选择的数据。
现在我的问题是,我怎么能在创建临时文件之后,将创建日期(日期足够,它不必包含一天中的小时和分钟)添加到我的CreationDate的同一个数据库中字段
问题是我不知道如何开始这个;我的想法是使用java.util.Calendar中的日历来确定日期
Calendar curr_day = new GregorianCalendar();
int curr_day_format = curr_day.get(Calendar.YEAR) * 10000 + (curr_day.get(Calendar.MONTH)+1) * 100 + curr_day.get(Calendar.DAY_OF_MONTH) ;
之后我不知道如何将该日期重新插入到数据库中,仅用于提取到temp txt文件的文件
答案 0 :(得分:0)
String str_sql ="从数据库中选择sap,og_id,kz,sap_order 状态=' A'和ver_status是og_id,kz,sap,sap_order&#34 ;;
的空序
用以下内容替换上面的字符串:
String str_sql = "select sap, og_id, kz, sap_order, cast(sysdatetime() as date) CreateDate from database where status='A' and ver_status is null order by og_id, kz, sap, sap_order";
这不是在创建文件之后但似乎是任意的。这是一个tsql解决方案,而语法是关闭的方法是相同的,编辑您的查询以向PL SQL调用添加日期。