免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3383 | 回复: 0
打印 上一主题 下一主题

经验 如何在 unload 中输出复杂分隔符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-21 14:04 |只看该作者 |倒序浏览

  1. 在使用 informix unload 语句生成下载文本文件的时候,有时为了保证输出数据的独立性,应用上会提出特殊要求,不再使用 “|”作为分隔符,而是希望使用更加复杂的符号来作为分隔符,如准备使用 “~!”双字符的组合,这时仅仅依靠 DELIMITER  修改缺省分隔符是不够的,但是我们可以结合以下的方法而实现以上的要求。
  2. 如有以下的数据表:
  3. { TABLE "informix".cmsopeninfo row size = 381 number of columns = 9 index size =
  4.               51 }
  5. create table "informix".cmsopeninfo
  6.   (
  7.     cmsacctid char(32) not null ,
  8.     usersymid char(14) not null ,
  9.     cmsacctname char(50) not null ,
  10.     openflag char(1) not null ,
  11.     opendate char(8),
  12.     openoperid char(6),
  13.     closedate char(8),
  14.     closeoperid char(6),
  15.     memo char(256)
  16.   );
  17. revoke all on "informix".cmsopeninfo from "public";



  18. create unique index "informix".cmsopeninfo_idx on "informix".cmsopeninfo
  19.     (cmsacctid,usersymid) using btree ;


  20. 可以用以下的办法实现以上的业务要求:

  21. unload   to   "cmsopeninfo.txt"   DELIMITER "!"
  22. select   
  23. cmsacctid   ||  "~",
  24. usersymid  || "~",
  25. cmsacctname || "~",
  26. openflag  || "~",
  27. opendate || "~",
  28. openoperid || "~",
  29. closedate ||  "~",
  30. closeoperid  || "~",
  31. memo  ||  "~"
  32. from  cmsopeninfo ;

  33. 这里实现该问题的要点为,每个需要输出字段后面都是用连接符 粘贴一个我们需要的符号,然后再将 DELIMITER  指定为我们需要的另外一个符号,这样就实现了该需求。

  34. 小小经验,欢迎讨论。

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP