ljmmail 发表于 2009-07-21 14:04

经验 如何在 unload 中输出复杂分隔符


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



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


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

unload   to   "cmsopeninfo.txt"   DELIMITER "!"
select   
cmsacctid   ||"~",
usersymid|| "~",
cmsacctname || "~",
openflag|| "~",
opendate || "~",
openoperid || "~",
closedate ||"~",
closeoperid|| "~",
memo||"~"
fromcmsopeninfo ;

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

小小经验,欢迎讨论。

页: [1]
查看完整版本: 经验 如何在 unload 中输出复杂分隔符