首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们能否以这样的方式将数据从DB2和Oracle写入CSV文件,对于BLOB、CLOB这样的数据类型,它应该是空字符串?

问我们能否以这样的方式将数据从DB2和Oracle写入CSV文件,对于BLOB、CLOB这样的数据类型,它应该是空字符串?
EN

Stack Overflow用户
提问于 2022-02-03 11:17:37
回答 1查看 127关注 0票数 -1

我需要一个对db2和oracle的查询,它可以用于将数据导出到CSV文件,对于BLOB、CLOB这样的数据类型,它将有一个空字符串。

表->

Col1(炭),col2 (blob),clo3 (日期)

video_1,blob,'1998-05-02‘

csv文件->

col1,col2,col3

"video_1“、"”、“1998-05-02”

EN

回答 1

Stack Overflow用户

发布于 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命令所做的那样)。

代码语言:javascript
复制
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.TABNAME
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70970347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档