CREATE OR REPLACE PROCEDURE sp_sst_mz_daxxdj_ynk_ykt( P_ZDBH00 in varchar2, --终端编号 P_YYJGDM in varchar2, --医院机构代码 P_CXFS00 in varchar2, --入参:查询方式,见附录编码 P_CXDM00 in varchar2, --入参:卡号 P_SFZHAO in varchar2, --身份证号 P_XMING0 in varchar2, --姓名 P_XBIE00 in varchar2, --性别(0男1女) P_CSRQ00 in varchar2, --出生日期(YYYYMMDD) P_LXDH00 in varchar2, --联系电话 P_LXDZ00 in varchar2, --联系地址 P_CZJE00 in varchar2, --充值金额(操作类别为1时,不能为0) P_ZZJYLS in varchar2, --自助机现金充值交易流水号(操作类别为1时,不能为空) P_czlb00 in varchar2, --充值类别 20190723 P_ZFJGC0 in varchar2, --支付结果串 P_CGJYSJ out varchar2, --成功交易时间 P_PJH000 out varchar2, --HIS交易流水号(票据号+票据序号) P_YJJYE0 out varchar2, --预交金余额 P_GBFEI0 out varchar2, --出参:工本费 P_BRID00 out varchar2, --出参 : 病人ID P_ERRMSG out VARCHAR2 --错误信息(为NULL是表示正常) ) as -- MODIFICATION HISTORY -- Person Date Comments -- zhangyc 2018.04.20 create -- --------- ---------- ------- LS_COUNT0 number(12); LS_BRXB00 BM_BRXXB0.BRXB00%type; --病人性别 LS_BRBLH0 BM_BRXXB0.BRXB00%type; --病人性别 LS_YBMC00 IC_YBBRLB.YBMC00%type; --医保中心名称 LS_YGBH00 BM_YGBM00.YGBH00%type; LS_YGXM00 BM_YGBM00.ZWXM00%type; LS_YGBMBH BM_YGBM00.BMBH00%type; LS_YHMSG0 varchar2(200); LS_SYSMSG varchar2(200); LS_CARDNO varchar2(220); LS_ICKQZMC varchar2(50); LS_CarNum number(5); --卡号位数 LS_CZRQ00 varchar2(8); LS_CZSJ00 varchar2(8); LS_ICKLB0 IC_YHXX00.ICKLB0%type;--'0'本院卡(默认), '1'外院卡, '2'医保卡 LS_ICKSX0 IC_YHXX00.ICKSX0%type; LS_KLDH00 IC_YHXX00.KLDH00%type; LS_YYID00 IC_YYID00.YYID00%type; LS_YWCZ00 IC_YWLS00.ywcz00%type; --0入库,1售病人卡,2售员工卡,3报停,4报废,5退卡,6取消报停,7重制空白卡,8医保卡登记,9外院卡登记 V_YWID00 IC_YWLS00.YWID00%type; LS_MZZHID SF_BRZHXX.MZZHID%type; --门诊账户ID LS_YBLBBH IC_YBBRLB.YBLB00%type; --病人所属医保中心名称对应的编号 LS_YBZXLB IC_YBBRLB.YBZXLB%type; --病人医保中心类别 LS_BRID00 BM_BRXXB0.BRID00%type; --病人ID LS_YBBRLB BM_BRXXB0.YBBRLB%type; --医保病人类别 LS_FBMC00 BM_BRFBB0.FBMC00%type; --病人费别名称 LS_FBBH00 BM_BRFBB0.FBBH00%type; LS_PJH000 SF_BRJFB0.PJH000%type; LS_JGBM00 SF_BRJFB0.JGBM00%type;--机构编码 LS_JGMC00 SF_BRJFB0.JGMC00%type;--机构名称 LS_FZXMC0 IC_YBBRLB.YBMC00%type; LS_YBID00 BM_BRXXB0.YBID00%type; LS_ZFFS00 SF_BRJFB0.ZFFS00%type; LS_ZFFSMC SF_BRJFB0.ZFFSMC%type; LS_JZDH00 number; ls_SFYB00 char(1); LS_KHQZBH varchar2(4); LS_CSRQ00 varchar2(10); LS_RESULT varchar2(100); LS_CZJE00 number(12,2); LS_XJYE00 number(12,2);--病人现金金额 LS_ZZYE00 number(12,2);--病人转账金额 LS_JYLX00 varchar2(20);--交易类型 1.门诊 2住院 LS_CZLB00 varchar2(20);--充值类型 1 现金 2 银行卡 3 一卡通支付充值 LS_CZQX00 varchar2(20);--充值去向 1.预交金 2 一卡通 3:一卡通往院内充值 begin LS_CZRQ00 := to_char(sysdate,'YYYYMMDD'); LS_CZSJ00 := to_char(sysdate,'HH24:MI:SS'); LS_CSRQ00:=P_CSRQ00; LS_FBBH00:=1; LS_SFYB00:= 'N'; LS_CARDNO:=P_CXDM00;--卡号 LS_JGBM00:='ZZJ'; --机构编码 LS_JGMC00:='自助发卡充值'; --机构名称 --查找终端编号对应收费员 begin select YGBH00,ZWXM00,BMBH00 into LS_YGBH00,LS_YGXM00,LS_YGBMBH from VW_SST_YGBMDYXX where ZZJBH0=P_ZDBH00; exception when no_data_found then P_ERRMSG:='终端编号:'||P_ZDBH00||'在本院SST_YGBHDY表中未对应!'; return; end; --查找表BM_BRFBB0 begin select FBMC00 into LS_FBMC00 from BM_BRFBB0 where FBBH00=1; exception when no_data_found then P_ERRMSG:='自助发卡确认建档失败!错误原因:字典表BM_BRFBB0未找到有效的数据!'; return; end; LS_FZXMC0:=LS_FBMC00; begin select YYID00 into LS_YYID00 from IC_YYID00 where BZ0000 = '0'; --标志:0本院,1外院 exception when no_data_found then LS_YYID00:= '0'; end; begin select to_number(P_CZJE00) into LS_CZJE00 from dual; exception when others then LS_YYID00:= '0'; end; select length(LS_CARDNO)into LS_CarNum from dual; --0入库,1售病人卡,2售员工卡,3报停,4报废,5退卡,6取消报停,7重制空白卡,8医保卡登记,9外院卡登记 if LS_CarNum=9 then --社保卡 LS_KLDH00:='YB-SBK'; LS_ICKSX0:=LS_YYID00; LS_ICKLB0:='2'; LS_YWCZ00:='8'; elsif LS_CarNum=10 then --居民健康卡 LS_KLDH00:='YB-SBK'; LS_ICKSX0:=LS_YYID00; LS_ICKLB0:='2'; LS_YWCZ00:='8'; elsif LS_CarNum=12 then --医保卡 LS_KLDH00:='YB-MMRK'; LS_ICKSX0:=LS_YYID00; LS_ICKLB0:='2'; LS_YWCZ00:='8'; else LS_KHQZBH:=''; LS_KLDH00:='SLE4442'; LS_ICKLB0:='0'; LS_ICKSX0:=LS_YYID00; LS_YWCZ00:='1'; end if; select SF_SST_GETICKH00_YKT(LS_CARDNO) into LS_CARDNO from dual; select count(*) into LS_COUNT0 from IC_YHXX00 where ICKH00 = LS_CARDNO AND ZT0000='1'; if LS_COUNT0 > 0 then P_ERRMSG:='自助发卡确认建档失败!错误原因:该卡号在院内已建档,无法重复建档!卡号='||LS_CARDNO; return; end if; select SF_SST_XBIE00_YKT(P_XBIE00,'0') into LS_BRXB00 from dual; begin select YBLB00,YBZXLB,YBMC00 into LS_YBLBBH,LS_YBZXLB,LS_YBMC00 from IC_YBBRLB where YBMC00 = LS_FZXMC0; exception when no_data_found then begin select a.YBLB00,a.YBZXLB,a.YBMC00 into ls_YBLBBH,ls_YBZXLB,ls_YBMC00 from IC_YBBRLB a,BM_FZXDY0 b where a.FBBH00=b.FBBH00 and a.YBLB00=b.YBLB00 and b.FZXMC0 = LS_FZXMC0; exception when no_data_found then P_ERRMSG:='医保中心:'||ls_FZXMC0||'在本院IC_YBBRLB表中未找到,请联系管理员!'; return; end; end; LS_YBBRLB:='0'; select SQ_BM_BRXXB0_BRBLH0.nextval into LS_BRBLH0 from dual; LS_BRBLH0:='*'||trim(ls_BRBLH0); /* --2、卡入库 P_CARDTYPE卡类型 0院内卡 4居民健康卡 if P_CARDTYPE not in ('0') then SP_SF_ICKRK0_REG000 ( p_icknbh=>LS_CARDNO, --IC卡内部号 p_ickh00=>LS_CARDNO, --IC卡号 LS_YWCZ00=>'8', --0入库,1售病人卡,2售员工卡,3报停,4报废,5退卡,6取消报停,7重制空白卡,8医保卡登记,9外院卡登记 B厦门健康卡登记 p_ickmm0=>'', --IC卡密码 p_kldh00=>LS_KLDH00, --卡类代号 p_kmh000=>P_CARDNO, --卡面号 p_sfdm00=>'0', --收费代码 p_ygbh00=>ls_YGBH00, --员工编号 as_YHMSG0=>P_ERRMSG, --存储过程提示的错误信息 as_SYSMSG=>ls_SYSMSG --系统提示的错误信息 ); if P_ERRMSG is not null or ls_SYSMSG is not null then P_ERRMSG:='病人建档入库错误:'||P_ERRMSG||';'||ls_SYSMSG; return; end if; end if; */ begin select JYLX00,CZLB00,CZQX00 into LS_JYLX00,LS_CZLB00,LS_CZQX00 from SST_YJJ_ZHCZ where JYLSH0=P_ZZJYLS; exception when others then LS_JYLX00:='1'; LS_CZLB00:='2'; LS_CZQX00:='1'; end; --自助发卡全部按现金充值 -- LS_CZLB00:='1'; --LS_JYLX00:='1'; --LS_CZQX00:='1'; LS_CZLB00:=P_czlb00; if LS_CZLB00='1' then --现金 LS_ZFFS00:=1; LS_XJYE00:=LS_CZJE00;--病人现金金额 LS_ZZYE00:=0;--病人转账金额 elsif LS_CZLB00='2' then --银行卡 LS_ZFFS00:=8; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 elsif LS_CZLB00='3' then --3一卡通支付充值 LS_ZFFS00:=26; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 elsif LS_CZLB00='4' then --微信支付 LS_ZFFS00:=24; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 elsif LS_CZLB00='5' then --支付宝支付 LS_ZFFS00:=25; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 elsif LS_CZLB00='6' then --微信公众号 LS_ZFFS00:=24; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 elsif LS_CZLB00='7' then --聚合支付 LS_ZFFS00:=28; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 else --3自助机其它充值 LS_ZFFS00:=8; LS_XJYE00:=0;--病人现金金额 LS_ZZYE00:=LS_CZJE00;--病人转账金额 end if; begin select ZFFSMC into LS_ZFFSMC from BM_BRZFFS where ZFFSBH=LS_ZFFS00; exception when others then P_ERRMSG := '支付表(BM_BRZFFS)未找到有效的记录:ZFFSBH='||LS_ZFFS00; return; end; --3、门诊病人基本信息登记及购卡 SP_SF_BRXX00_REG000 ( as_ICKH00=>LS_CARDNO, -- in char, --IC卡号 as_MRN000=>'0', -- in char, --病案号 as_BRBLH0=>LS_BRBLH0, -- in char, --门诊病历号 as_BRXM00=>P_XMING0, -- in char, --姓名 as_BRXB00=>LS_BRXB00, -- in char, --性别 as_BRXX00=>null, -- in char, --血型 as_BRCSRQ=>LS_CSRQ00, -- in char, --出生日期 as_BRHYZK=>null, -- in char, --婚姻状况 as_BRZY00=>null, -- in char, --职业 as_BRMZ00=>null, -- in char, --民族 as_BRGJ00=>null, -- in char, --国籍 as_BRZJLX=>'身份证', -- in char, --证件类型 as_BRZJBH=>P_SFZHAO, -- in char, --证件编号 as_FBMC00=>LS_FBMC00, -- in char, --费别名称 as_GFZH00=>'0', -- in char, --公费证号 as_BRDYFW=>'未知', -- in char, --地域范围;本市、外地) as_BRDH00=>P_LXDH00, -- in char, --电话 as_BRSZSF=>null, -- in varchar2 default '', --病人所在省份 as_BRSZS0=>null, -- in varchar2 default '', --病人所在市(县、区) as_BRSZZ0=>null, -- in varchar2 default '', --病人所在镇(办事处) as_BRJTDZ=>P_LXDZ00, -- in varchar2, --家庭地址/通信地址 as_BRYB00=>null, -- in char, --邮编 ad_TYDWID=>null, -- in number, --单位ID as_TYDWMC=>null, -- in varchar2, --单位名称 as_BRLXGX=>null, -- in char, --联系人关系 as_BRLXXM=>null, -- in char, --联系人姓名 as_BRLXDZ=>null, -- in varchar2, --联系人地址 as_BRLXDH=>P_LXDH00, -- in char, --联系人电话 as_BRZTQK=>null, -- in char, --职退情况 as_BRJKQK=>null, -- in varchar2, --健康状况 as_BRLX00=>'初诊', -- in char, --病人类型,如:'普通病人' as_JFLBMC=>'门诊预交金', -- in char, --账户类别 ad_XJYE00=>LS_XJYE00, -- in number, --病人现金金额 ad_ZZYE00=>LS_ZZYE00, -- in number, --病人转账金额 ad_BJJE00=>0, -- in number, --报警限额 ad_TYJE00=>0, -- in number, --停用限额 ad_YXQFJE=>0, -- in number, --允许病人的欠费的最大金额 as_KL0000=>null, -- in char, --账户口令,就诊卡的口令 as_ZFFSMC=>LS_ZFFSMC, -- in char, --支付方式 as_ZPH000=>P_ZZJYLS, -- in char, --支票号 as_ZPKHYH=>null, -- in char, --出票的开户银行 as_ZPDWMC=>null, -- in char, --出票的单位名称 ad_CZY000=>LS_YGBH00, -- in number, --操作员ID as_CZYXM0=>LS_YGXM00, -- in char, --操作员姓名 ad_CZYKSH=>LS_YGBMBH, -- in number, --操作员所在科室编码 as_YJJXH0=>'0', -- in char, --预交金票据号 as_YBKH00=>'0', -- in char, --病人医保卡号 as_YBID00=>'0', -- in char, --病人医疗保险号(医保ID) as_YBLB00=>LS_FZXMC0, -- in char, --病人所属医保中心名称 as_SFYB00=>'N', -- in char, --是否是医保病人信息登记,'Y':医保病人 as_SFSBLF=>'N', -- in char, --是否收取病人的病历费,'Y':收病历费,'N':不收病历费 ad_YGBH00=>-1, -- in number default -1, --员工编号 ad_SFYD00=>'0', -- in char default '0', --是否优待 as_SFYXJB=>'0', -- in char default '0', --是否优先 Pcommit=>'N', -- in varchar2 default 'Y', --是否提交 as_BJJBIE=>'04', -- in char default '04', --保健级别 '00':无级别或非保健人员 '01' 一级 '02' 二级 '03' 三级 '04' 是还未从医保那边获取病人的保健级别时的值 ad_JZDH00=>LS_JZDH00, -- out number, --结算单号,广东省中医院新增的 ad_PJH000=>LS_PJH000, -- out number, --打印票据的内部号,或称为交费表的单据号,或预交金的票据内部号 as_YHMSG0=>P_ERRMSG, -- out varchar, --存储过程提示的错误信息 as_SYSMSG=>ls_SYSMSG, -- out varchar, --系统提示的错误信息 as_TSSXMC=>'普通', -- in varchar2 default '普通', --病人特殊属性类别 as_YBTSBZ=>'N', -- in varchar2 default 'N' , --医保特殊病种 N 不是 Y是 as_XZQH00=>null, -- in varchar2 default '' , --行政区号 as_GRSFEN=>null, -- in varchar2 default '' , --个人身份类型 as_GRSFMC=>null, -- in varchar2 default '' , --个人身份名称 as_SFBLWT=>null, -- in varchar2 default '' , --是否办理委托0未办理1已办理 as_CARD16=>null, -- in varchar2 default '' , --CARD16 as_MSKF00=>'N', -- in varchar2 default 'N' , --是否免收卡费 Y:免收卡费 N:收取卡费 as_JG0000=>null, -- in varchar2 default '' , --籍贯 as_SFSY00=>'0', -- in varchar2 default '0' , --是否生育 0:否 1:是 as_SFBJ00=>'0', -- In varchar2 default '0' , --是否保健 0否 1是 as_JKKLX0=>'-1', -- In varchar2 default '-1' , --健康卡登记类型 0:正式卡建卡 1:临时建卡 2:院外卡建卡 as_JKKKF0=>'N', -- in varchar2 default 'N' , --健康卡登记是否收取卡费 Y:收取 N:不收取 as_HZDWMC=>null, -- In varchar2 default '' , --合作单位名称 as_BRDZBM=>null, -- In varchar2 default '' , --地址编码 as_SFGHXZ=>'0' -- In varchar2 default '0' --是否挂号限制 0:不限制 1:限制 /* as_ICKH00=>LS_CARDNO, --IC卡号 as_MRN000=>'0', --病案号 as_BRBLH0=>LS_BRBLH0, --门诊病历号 as_BRXM00=>P_XMING0, --姓名 as_BRXB00=>LS_BRXB00, --性别 as_BRXX00=>NULL, --血型 as_BRCSRQ=>LS_CSRQ00, --出生日期 as_BRHYZK=>NULL, --婚姻状况 as_BRZY00=>NULL, --职业 as_BRMZ00=>null, --民族 as_BRGJ00=>'中国', --国籍 as_BRZJLX=>'身份证', --证件类型 as_BRZJBH=>P_SFZHAO, --证件编号 as_FBMC00=>LS_FBMC00, --费别名称 as_GFZH00=>'0', --公费证号 as_BRDYFW=>'未知', --地域范围;本市、外地) as_BRDH00=>P_LXDH00, --电话 as_BRSZSF=>null, --病人所在省份 as_BRSZS0=>null, --病人所在市(县、区) as_BRSZZ0=>null, --病人所在镇(办事处) as_BRJTDZ=>P_LXDZ00, --家庭地址/通信地址 as_BRYB00=>null, --邮编 ad_TYDWID=>null, --单位ID as_TYDWMC=>null, --单位名称 as_BRLXGX=>null, --联系人关系 as_BRLXXM=>null, --联系人姓名 as_BRLXDZ=>null, --联系人地址 as_BRLXDH=>P_LXDH00, --联系人电话 as_BRZTQK=>null, --职退情况 as_BRJKQK=>null, --健康状况 as_BRLX00=>'初诊', --病人类型,如:'普通病人' as_JFLBMC=>'门诊预交金', --账户类别 ad_XJYE00=>LS_XJYE00, --病人现金金额 ad_ZZYE00=>LS_ZZYE00, --病人转账金额 P_CZJE00 ad_BJJE00=>0, --报警限额 ad_TYJE00=>0, --停用限额 ad_YXQFJE=>0, --允许病人的欠费的最大金额 as_KL0000=>null, --账户口令,就诊卡的口令 as_ZFFSMC=>LS_ZFFSMC, --支付方式 as_ZPH000=>P_ZZJYLS, --支票号 as_ZPKHYH=>null, --出票的开户银行 as_ZPDWMC=>null, --出票的单位名称 ad_CZY000=>LS_YGBH00, --操作员ID as_CZYXM0=>LS_YGXM00, --操作员姓名 ad_CZYKSH=>LS_YGBMBH, --操作员所在科室编码 as_YJJXH0=>'0', --预交金票据号 as_YBKH00=>'0', --病人医保卡号 as_YBID00=>'0', --病人医疗保险号(医保ID) as_YBLB00=>LS_FZXMC0, --病人所属医保中心名称 as_SFYB00=>LS_SFYB00, --是否是医保病人信息登记,'Y':医保病人 as_SFSBLF=>'N', --是否收取病人的病历费,'Y':收病历费,'N':不收病历费 ad_YGBH00=>-1, --员工编号 ad_SFYD00=>'0', --是否优待 as_SFYXJB=>'0', --是否优先 Pcommit=>'N', --是否提交 as_BJJBIE=>'04', --保健级别 '00':无级别或非保健人员 '01' 一级 '02' 二级 '03' 三级 '04' 是还未从医保那边获取病人的保健级别时的值 ad_JZDH00=>LS_JZDH00, --结算单号,广东省中医院新增的 ad_PJH000=>LS_PJH000, --缴费表的单据号 as_YHMSG0=>P_ERRMSG, --存储过程提示的错误信息 as_SYSMSG=>ls_SYSMSG, --系统提示的错误信息 as_TSSXMC=>'普通', --病人特殊属性类别 as_YBTSBZ=>'N', --医保特殊病种 N 不是 Y是 as_XZQH00=>'', --行政区号 as_GRSFEN=>'', --个人身份类型 as_GRSFMC=>'', --个人身份名称 as_SFBLWT=>'', --是否办理委托0未办理1已办理 as_CARD16=>'', --CARD16 as_TSBRJK=>'0', --特殊病人建卡,0不可建, 1可见 as_SFYY00=>'0', --是否预约 0否,1是 ad_BRID00=>LS_BRID00 --传入BRID00 */ ); if P_ERRMSG is not null and ls_SYSMSG is not null then P_ERRMSG:='基本信息登记错误:'||P_ERRMSG||';'||ls_SYSMSG; return; end if; begin select BRID00 into LS_BRID00 from IC_YHXX00 where ICKH00 = ls_cardno AND ZT0000='1'; --LS_BRID00 exception when no_data_found then P_BRID00:=0; end; if LS_PJH000>0 then update SF_BRJFB0 set JGBM00=LS_JGBM00,JGMC00=LS_JGMC00 ,JYLSH0=P_ZZJYLS where DJH000=LS_PJH000 and BRID00=LS_BRID00; end if; /* if P_CZJE00>0 then SP_SST_YJJ_ZHCZ_YKT ( P_YYJGDM =>P_YYJGDM, --医院机构代码 P_CARDNO =>P_CARDNO, --卡号 P_CARDtype =>P_CARDTYPE, --0为院内卡、1为社保卡 4居民健康卡 P_CZJE00 =>P_CZJE00, --充值金额 P_JYLSH0 =>P_JYLSH0, --交易流水号 P_JYLX00 =>'1', --交易类型 1.现金 2银行 P_YHLSH0 =>P_JYLSH0, --银行流水号 --P_CZQX00 =>P_CZQX00, --1院内 2民生通 --P_YKTLSH =>null,--一卡通流水号 P_ZDBH00 =>P_ZDBH00, --终端编号 P_Result=>LS_Result, P_ERRMSG =>P_ERRMSG --出参,错误信息,NULL表示正确 ); if P_ERRMSG is not null then P_ERRMSG:='账户充值错误:'||P_ERRMSG||';'||ls_SYSMSG; return; end if; select to_char(to_date(jfrq00,'YYYYMMDD'),'YYYY-MM-DD')||' '||jfsj00,djh000 into P_CGJYSJ,P_XTGZH0 from SF_SSTCZ0 where CARDNO=LS_CARDNO and JYLSH0=P_JYLSH0; end if; --预交金余额 */ --成功交易时间 P_CGJYSJ:=LS_CZRQ00||' '||LS_CZSJ00; --HIS交易流水号(票据号+票据序号) P_PJH000:=LS_PJH000; --出参:工本费 P_GBFEI0:='0'; --出参:预交金余额 P_YJJYE0:=SF_SST_GetBRZHYE_YKT(0,LS_BRID00,1,0);--参数:0 门诊 1住院,BRID00,交费类型:1门诊 2住院 ,返回类型 0:可用余额 1:总余额 2:现金余额 3:停用金额 P_BRID00:=LS_BRID00; --出参 : 病人ID exception when no_data_found then P_ERRMSG:='自助发卡确认建档失败:错误原因'||sqlerrm; when others then P_ERRMSG:='自助发卡确认建档失败:错误原因'||sqlerrm; END;