gpt4 book ai didi

java - 使用oracle格式化查询结果

转载 作者:行者123 更新时间:2023-12-02 13:12:53 26 4
gpt4 key购买 nike

我想在oracle中格式化查询结果并将它们保存到输出文件中。

我尝试了这个查询:

spool "result.txt"
SELECT STA_CODE,DATE_CREATION,DATE_FIN_INSTANCE,DATE_FIN_TRAITEMENT FROM DEMANDE;
spool off;

在我的输出文件中,结果如下所示:

STA_CODE                  DATE_CRE DATE_FIN DATE_FIN

------------------------- -------- -------- --------

200 09/05/17 09/05/17 09/05/17

400 09/05/17 09/05/17 09/05/18

然后我想编写一个java代码,该代码获取每行结果并将其与列名称匹配:例如STA_CODE=200、STA_CODE=400、DATE_CRE=09/05/17、DATE_CRE=09/05/18 ....我对 JAVA 很精通,但我写不出那段代码。可以直接格式化查询结果,然后解析输出文件,而无需使用 java 进行任何转换。

最佳答案

如果您希望将每一行分开,请使用

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 查询中按列排序。

关于java - 使用oracle格式化查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43890146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com