您的位置:首页 > 数据库 > Oracle

oracle存储过程语法

2015-10-23 16:15 555 查看
create or replace procedure lis_zhifang_return_confirm(barcode in varchar2,deptcode1 in varchar2)
as
begin
update  clc_recipe r  set  r.deptcode=deptcode1 , r.deptname='检验科' where r.labcode=barcode;
commit;

end;


CREATE OR REPLACE PROCEDURE peis_transmitresult(
barcode in varchar2,   --条码号
excdoctor in varchar2 ,  --执行医生ID
excdoctorname in varchar2,   --执行医生name
excdate in date ,--执行日期
result in varchar2 , --结果值
indid in varchar2 , --小项id
indname in varchar2 , --小项name
unnormal in varchar2 , --正异常标志
sn in varchar2 , --小项序号
maxval in varchar2 , --结果最大值
minval in varchar2 , --结果最小值
resultunit in varchar2 , --结果单位
range in varchar2  --参考范围
)
as
--变量区
v_hosnum varchar2(6) :='';  --医院编码
v_itemuuid varchar2(20) :='';--组合的uuid
v_examid varchar2(15) :='';--预约单ID
v_pexamid varchar2(15) :='';--体检编号
v_itemcode varchar2(15) :='';--项目id
v_itemname varchar2(50) :='';--项目name
v_excdept  varchar2(10) :='';--执行科室id
v_excdeptname  varchar2(10) :='';--执行科室name
v_excdoctor varchar2(10) :=excdoctor;--执行医生id
v_excdoctorname varchar2(20) :=excdoctorname;--执行医生name
v_excdate date :=excdate ;   --执行日期
v_result varchar2(30) :=result ;   --执行日期
v_indid varchar2(30) :=indid ;   --小项id
v_indname varchar2(30) :=indname ; --小项name
v_unnormal varchar2(30) := unnormal ; --正异常标志
v_sn varchar2(10) := sn ; --小项序号
v_maxval varchar2(10) := maxval ; --结果最大值
v_minval varchar2(10) := minval ; --结果最小值
v_resultunit varchar2(10) := resultunit ; --单位
v_range varchar2(10) := range ; --参考范围

v_count number :=0;  --未传回结果的数量
BEGIN

select a.hosnum,a.itemuuid,a.examid,a.pexamid,a.itemcode,a.itemname,a.excdept,a.excdeptname

into v_hosnum,v_itemuuid,v_examid,v_pexamid,v_itemcode,v_itemname,v_excdept,v_excdeptname
from pexam_items_title a where a.tmcode=barcode;
--插入结果表
insert into pexam_results
(hosnum, examid, pexamid, excdept, excdeptname, excdoctor, excdoctorname,
excdate, stringvalue, numvalue, result, comid, comname, indid, indname,
examtype, unnormal, itemuuid, sn, maxval, minval, resultunit, range, parentid)
values
(v_hosnum, v_examid, v_pexamid, v_excdept, v_excdeptname, v_excdoctor, v_excdoctorname
, v_excdate, '', '', v_result, v_itemcode, v_itemname, v_indid, v_indname,
'', v_unnormal, v_itemuuid, v_sn, v_maxval, v_minval, v_resultunit, v_range, '');
commit;

--判断是否组合下面的小项结果都有了,
--如果都有了 就回执这个组合  保存为已完成。  否则不回执。
select count(*) count into v_count  from pexam_results  c where c.pexamid= v_pexamid
and c.itemuuid=v_itemuuid  and c.excdate is null ;
IF v_count=0 THEN
BEGIN
update pexam_items_title a set a.excdate=v_excdate,a.excdoctorid=v_excdoctor, a.excdoctorname=v_excdoctorname,a.deptSum=''
where a.hosnum=v_hosnum and a.itemuuid=v_itemuuid;
commit;
END;
END IF;

END peis_transmitresult;


输出语句:

DBMS_OUTPUT.PUT_LINE('GG在这里。。');

grant execute on peis_transmitresult to lis_zhifang;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: