请高手帮我将一段oracle SQL语句转换成DB2能用的
CREATE OR REPLACE FUNCTION "ADMS"."GETNEWID"(p_OldID varchar2) return varchar2 is
-- Author : XJG(xjg@netsky-tech.com)
-- Created : 2003-11-03 18:38:56
-- Purpose : 从原有的15位身份证号转换成新的18位(附PASCAL代码)
type TIArray is table of integer;
type TCArray is table of char(1);
Result varchar2(18);
W TIArray;
A TCArray;
S integer;
begin
if Length(p_OldID) <> 15 then
raise_application_error(-20999, '不是旧15位身份证号');
end if;
W := TIArray(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
A := TCArray('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
Result := SubStr(p_OldID, 1, 6) || '19' || SubStr(p_OldID, 7, 9);
S := 0;
begin
for i in 1 .. 17 loop
S := S + to_number(SubStr(Result, i, 1)) * W(i);
end loop;
exception
when others then
return '';
end;
S := S mod 11;
Result := Result || A(s + 1);
return(Result);
end GetNewID;
以上语句oracle可以用,DB2报错.
-- Author : XJG(xjg@netsky-tech.com)
-- Created : 2003-11-03 18:38:56
-- Purpose : 从原有的15位身份证号转换成新的18位(附PASCAL代码)
type TIArray is table of integer;
type TCArray is table of char(1);
Result varchar2(18);
W TIArray;
A TCArray;
S integer;
begin
if Length(p_OldID) <> 15 then
raise_application_error(-20999, '不是旧15位身份证号');
end if;
W := TIArray(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
A := TCArray('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
Result := SubStr(p_OldID, 1, 6) || '19' || SubStr(p_OldID, 7, 9);
S := 0;
begin
for i in 1 .. 17 loop
S := S + to_number(SubStr(Result, i, 1)) * W(i);
end loop;
exception
when others then
return '';
end;
S := S mod 11;
Result := Result || A(s + 1);
return(Result);
end GetNewID;
以上语句oracle可以用,DB2报错.
...全文
相关推荐
oracle或db2的建表SQL语句解析
读取oracle或db2的建表SQL语句文本文件(.txt),解析后转为java对象且序列化后存为.dm文件
Oracle迁移到DB2 SQL语句差异
在做项目的过程中,客户有可能会要求换数据库,那么除啦配置上的差异,还有最基本的Sql语句的差别,在这儿将这全部列出,为开发人员减轻痛苦.
SQL_Server,Oracle,DB2数据库SQL语句比较
SQL_Server,Oracle,DB2数据库SQL语句比较,方便查看。简单实用!!
四大数据库的比较(SQL_Server、Oracle、Sybase和DB2)
从各个方面说明了这四个数据库的根本区别,帮助初学者有选择的学习自己想要的。
DB2、ORACLE SQL写法的主要区别
DB2、ORACLE SQL写法的主要区别 1、数据类型转换函数 2、Where条件弱类型判断 3、replace关键字 4、子查询别名 5、DATE数据类型的区别 6、分页的处理 7、decode函数 8、NVL函数 9、substr的不同 10、获取操作系统当前日期


