我想在oracle中格式化查询结果并将它们保存到输出文件中。
我尝试了这个查询:
process->start("stdbuf", QStringList() << "--output=L" << "/home/user/test.py");
在我的输出文件中,结果如下:
spool "result.txt"
SELECT STA_CODE,DATE_CREATION,DATE_FIN_INSTANCE,DATE_FIN_TRAITEMENT FROM DEMANDE;
spool off;
我想编写一个java代码,该代码为每一行获取结果,并将其与列名相匹配:例如STA_CODE = 200,STA_CODE = 400,DATE_CRE = 09/05 / 17,DATE_CRE = 09/05 / 18 .... 我是JAVA中的biginner,我无法写出那段代码。可以直接格式化查询结果,然后解析输出文件而不用java进行任何转换。
答案 0 :(得分:1)
如果您希望每行分开,请使用
SELECT 'STA_CODE='||STA_CODE
||', DATE_CRE=' ||to_date(DATE_CREATION,'DD/MM/YY')---other values
from DEMANDE
如果您希望所有STA_CODE
首先,然后全部DATE_CRE
,然后在一行中以逗号分隔的其他列,请使用类似
select listagg(col1,', ') within group (order by seq)
from (
SELECT 1 as seq,'STA_CODE='||STA_CODE as col1 from DEMANDE
union
SELECT 2 as seq,'DATE_CRE='||to_date(DATE_CREATION,'DD/MM/YY') from DEMANDE
union
---- other select queryies separated by union.
)
注意:您无法保证每行之间的订单。因此,第二个STA_CODE
首先出现,第一个DATE_CRE
成为第二个union
。要为此提供服务,请按所有get_my_dep(empNum)
次查询中的列进行排序。