db2:as400
CREATE PROCEDURE P_DKSQDEL (
IN V_G000 VARCHAR(20) ,
IN V_USER VARCHAR(20) ,
INOUT V_MRET SMALLINT )
LANGUAGE SQL
set option commit=*cs
BEGIN
DECLARE V_CNT INTEGER DEFAULT 0 ;
DECLARE V_E001 VARCHAR ( 20 ) ;
DECLARE V_G192 VARCHAR ( 2 ) 。。。。。。。。
orcl :
CREATE OR REPLACE PROCEDURE "P_DKSQADD" (
v_g001 varchar, --职工账号
v_g0012 varchar, --配偶账号
v_g0122 varchar, --证件类型
v_g0132 varchar, --配偶证件号码
v_g0022 varchar, --配偶姓名
v_g0042 varchar, --配偶单位名称
v_a0712 varchar, --配偶单位性质
v_g0062 varchar, --配偶部门名称
v_g071 varchar, --房屋类型
v_g080 varchar, --房屋性质
v_g115 number, --贷款年限
v_g113 number, --贷款金额
v_g186 date, --受理日期
v_a073 varchar, --承办网点编码
v_userid varchar, --用户代码
v_mret in out smallint --返回值 0-受理成功,大于0-受理失败
)
as
v_errorcode number;
v_errormsg varchar2(200);
Sybase:
create procedure p_dkhkchg --贷款还款修改
(
@m_hkxh char(26),
@m_fld char(4),
@m_value decimal(10,2),
@mret smallint out
)
--加密
as
同时,程序传参数,orcl 不会限制长度,在运行中会发现是否字段超长,db2 直接判断长度与存储定义的不一样,报错。但是Syabase 的会自动过滤掉你超长的那部分,如 @m_fld char(4), ,你传的参数为0012,会自动变为:001.但是不报错,影响数据运行结果。