liwd1977 发表于 2010-07-07 09:44

怎么把一个asc码转成字符?ORACLE里是chr函数,informix好像没有类似的函数

ORACLE语法:
    select ascii('a') from dual;
      返回97
    select chr(97) from dual;
      返回'a'


INformix语法:
    select ascii('a') from dual;
      返回97
    select chr(97) from dual;
      粗体红色部分应该用什么函数替换?

wenlq 发表于 2010-07-07 12:04

写个datablade实现

liaosnet 发表于 2010-07-07 12:21

在11中引入了ascii(),似乎没有这个反向的函数..

liwd1977 发表于 2010-07-07 15:30

请问二楼,datablade怎么写,能不能帮忙贴一个例子,谢谢了

wenlq 发表于 2010-07-07 15:44

chr.c


#include "mi.h"


mi_lvarchar * chr(mi_int1val )
{
   mi_string s;
   mi_lvarchar * lvs;
   s=val;
   s='\0';
   lvs=mi_string_to_lvarchar(s);
   return lvs;

}

把这个chr.c 编译成.so
dbaccess 里运行 chr.sql

create function chr ( smallint ) returning lvarchar
with (not variant)
external name '/home/test/wlq/blade/chr.so(chr)'
language c;
execute function chr(65);
我在AIX里IDS9.30测试通过。

liwd1977 发表于 2010-07-09 10:15

多谢二楼
页: [1]
查看完整版本: 怎么把一个asc码转成字符?ORACLE里是chr函数,informix好像没有类似的函数