oracle存储过程

create or replace procedure P_Get_Barcode
(insGroupName varchar,
codeName varchar,
codeSign varchar,
institutionCode varchar,
codeV out varchar,
codeS out varchar)
as
--codeV varchar(20);
--codeS varchar(20);
currDate date;
bmid varchar(20);
v_sql_str varchar(200);
--v_sql_str1 varchar(200);
--v_sql_str2 varchar(200);
begin
  select BARCODE_MANAGE_ID into bmid from T_GROUPINSPECTION where GROUPNAME=insGroupName and IC_LIS_CODE=institutionCode;
  --select BM_MZ_CODE into codeV,BM_MZ_SIGN into codeS,BM_UPDATE_DATEIME into currDate,BM_ID into bmid from T_BARCODE_MANAGE where bm_id in(select BARCODE_MANAGE_ID from T_GROUPINSPECTION where GROUPNAME='生化') for update
  select BM_UPDATE_DATEIME into currDate from T_BARCODE_MANAGE where bm_id=bmid for update;
  --select BM_MZ_CODE into codeV from T_BARCODE_MANAGE where bm_id=bmid;
  --v_sql_str1:='select '||codeName||' from T_BARCODE_MANAGE where bm_id='||bmid;
  --execute immediate v_sql_str1 into codeV;
  --select BM_MZ_SIGN into codeS from T_BARCODE_MANAGE where bm_id=bmid;
  --v_sql_str2:='select '||codeSign||' from T_BARCODE_MANAGE where bm_id='||bmid;
  --execute immediate v_sql_str2 into codeS;
  v_sql_str:='select '||codeName||','||codeSign||' from T_BARCODE_MANAGE where bm_id='||bmid;
  execute immediate v_sql_str into codeV,codeS;
  if TO_CHAR(currDate,'YYYY_MM_DD')<>TO_CHAR(sysdate,'YYYY_MM_DD') then
    update T_BARCODE_MANAGE set BM_UPDATE_DATEIME=sysdate,BM_MZ_CODE='001' where bm_id=bmid;
    codeV:='0001';
  end if;
  update T_BARCODE_MANAGE set BM_MZ_CODE=substr(to_number(codeV)+10001,-4) where bm_id=bmid;
  --idvalue:=codeV+codeS;
  
  commit;
  exception
    when others then
      rollback;
      codeV:=0;
      codeS:=0;
  end;

 

posted on 2018-04-20 17:43  sumo1510  阅读(101)  评论(0)    收藏  举报

导航