DB2使用特殊分隔符处理数据
来源:互联网 发布:大数据毕业论文 编辑:程序博客网 时间:2024/05/15 06:44
前几天接到一个需求,使用特殊的符号`|` 来作为字段分隔符,想了半天没搞定,后来在组长得指导下,查阅了项目之前的脚本才搞定了这件事。这给我的启示就是,当项目遇到奇怪的需求时,其实最好参阅以前的代码,因为这些问题很可能同事就已经遇到过了。一般像这种问题,网上是没有答案的。
首先我们看下db2导入导出数据的语法,也就是export
,import
,load
的用法。
- export
:作导出数据使用,一般的语法也就是export to filename of filetype select colname from table where xx
,但大家会修改一些字符分割符和编码,格式化啥的,所以语法就稍微复杂一点。
- import
:作导入数据使用,一般的语法也是import from filename of filetype insert colname into table where xx
,其他方面和export
一样。
- load
: 作装入数据使用,语法较import
要复杂一些,可以参考db2文档。
详细的可以参考这篇文章DB2数据的导入(Import)导出(Export)(Load)
简单的介绍了语法,回到我们的重点来,如何使用特殊符号`|`来做字段分割符导出数据呢?
首先我们可以看到db2提供了charsel来作为字段分割符,但这只能使用单字符来做分隔符,可`|`是一个字符串,不能这样做,我的做法是,在查询语句中先做预处理,再导出就行了。由于一般是用在脚本里使用db2语句来处理的,这里贴上处理的思路。
1. 得到字段名
colnames = select colname from syscat.columns where tabname = '${tabname}' and tabschema = '${tabschema}' order by colno
2. 将字段名,由列转行,并用`|`来做分割符,保存在sh变量中
result = SELECT listagg(colname,
`|`)C FROM ${colnames}
3. 使用export语句来导出数据 select ${result} as field from "${tabschema}.${tabname}" where xxx
由于md的显示问题,实际的代码和这里贴出的不一样,大家可以参考我github上的脚本:export_data.sh导出数据
这是导出的处理,导入可以反着来,处理思路是一样的,那就是如何消除特殊分割符。
- DB2使用特殊分隔符处理数据
- 按固定分隔符导出DB2数据到EXCEL表格
- 转】DB2导入导出使用"|"作分隔符的问题
- hive如何处理多分隔符数据
- Hive数据导入预处理-分隔符处理
- Java字符串工具类(字符串 替换 分隔符 特殊字符处理)
- split分隔符总结(特殊字符)
- java特殊转义字符 \\[] \\|(分隔符)
- JavaSE_split 调用特殊的分隔符
- DB2 日期数据的处理
- db2导入insert into 语句使用逗号分隔的文件
- Java中的分隔符处理
- 使用非标准分隔符
- 使用特殊数据
- Java字节流数据逐行读取(readLine),处理以Tab分隔符划分的数据
- 特殊字符的分隔
- hive 导出数据分隔符
- DB2 导出DEL文件的分隔符问题
- 肝硬化和饮食细节 你知道吗
- 散布矩阵(scatter_matrix)及相关系数(correlation coefficients)实例分析
- HDOJ 1009 FatMouse' Trade
- String家族三大流氓(初级程序必看 )
- C#没有类库
- DB2使用特殊分隔符处理数据
- PyQt5无边框窗口的标题拖动和窗口缩放实现
- 强大的EF映射
- C#继承(二)——实现继承
- 第十二周项目(2)
- L2-016. 愿天下有情人都是失散多年的兄妹
- 基于Triplet loss 函数训练人脸识别深度网络
- 论文字体排版要求
- 第四章 数据库安全性