gpt4 book ai didi

java - 将sql查询的输出写入文件

转载 作者:行者123 更新时间:2023-11-29 14:12:38 26 4
gpt4 key购买 nike

我有一个 SQL 查询:

SELECT 'DROP TABLE ' || tablename
FROM pg_catalog.pg_tables where tablename like 'r_395%';

它的输出是这样的:

?column?      
--------------------
DROP TABLE r_395_0
DROP TABLE r_395_1
DROP TABLE r_395_2
DROP TABLE r_395_3
DROP TABLE r_395_4
DROP TABLE r_395_5
DROP TABLE r_395_6
DROP TABLE r_395_7
DROP TABLE r_395_8
DROP TABLE r_395_9
(10 rows)

我正在使用实体管理器来执行此查询:

StringBuffer query = new StringBuffer();

query.append("SELECT 'DROP TABLE ' || tablename
FROM pg_catalog.pg_tables where tablename like 'r_395%'");
entityManager.createNativeQuery(query.toString()).executeUpdate();

我想将此输出写入文件。如果它只是一个文本文件,我会使用 filewriter 和 buffered writer。但是现在它是一个SQL生成的文件,我有点困惑。有没有办法在 Java 中实现这一点?

最佳答案

如果你想在本地(在数据库的机器上)写一个文件,还有非常快速和简单的 COPY对于这样的情况:

COPY $$SELECT 'DROP TABLE ' || tablename
FROM pg_catalog.pg_tables
WHERE tablename ~~ 'r_395%'$$ TO /path/to/myfile;

我使用 dollar-quoting在这里,以避免转义单引号。

关于java - 将sql查询的输出写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766556/

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