我需要一个对db2和oracle的查询,它可以用于将数据导出到CSV文件,对于BLOB、CLOB这样的数据类型,它将有一个空字符串。
表->
Col1(炭),col2 (blob),clo3 (日期)
video_1,blob,'1998-05-02‘
csv文件->
col1,col2,col3
"video_1“、"”、“1998-05-02”
发布于 2022-02-03 13:06:38
您可以动态生成相应的语句,以便稍后在Db2中执行它们。
下面是两个系统表SYSIBM.SYSTABLES和SYSIBM.SYSTABLESPACES的示例。
您可以使用相应的EXPORT语句来获得2个SELECT命令。
可以使用输出作为命令脚本执行Db2命令行处理器(在建立数据库连接的会话中使用db2 -tf out_file.sql)。如果用EXPORT注释掉字符串,您可能会得到纯对应的SELECT语句,以便将它们与另一个工具一起使用,该工具可以将任意SELECT语句的结果保存到CSV文件中(如Db2 EXPORT命令所做的那样)。
SELECT
'EXPORT TO ' || RTRIM (T.TABSCHEMA) || '.' || T.TABNAME || '.csv OF DEL'
||' SELECT ' || LISTAGG (CASE WHEN C.TYPENAME LIKE '%LOB' THEN '''''' ELSE '"' || C.COLNAME || '"' END, ', ') WITHIN GROUP (ORDER BY C.COLNO)
||' FROM "' || T.TABSCHEMA || '"."' || T.TABNAME || '";'
FROM SYSCAT.TABLES T
JOIN SYSCAT.COLUMNS C ON C.TABSCHEMA = T.TABSCHEMA AND C.TABNAME = T.TABNAME
WHERE T.TABSCHEMA = 'SYSIBM' AND T.TABNAME IN ('SYSTABLES', 'SYSTABLESPACES')
GROUP BY T.TABSCHEMA, T.TABNAMEhttps://stackoverflow.com/questions/70970347
复制相似问题