oracle 存儲過程複習

CREATE OR REPLACE PROCEDURE "GETCODE" (EN in varchar2,EC OUT INTEGER) is
  t_count integer;
FID INTEGER;
a integer;
begin
  select count(*) into t_count from APP_GETCODE where FENTITYNAME=EN;
  if t_count>0 then
    begin

      Select FENTITYCODE into EC From APP_GETCODE Where FENTITYNAME=EN;
      Update APP_GETCODE Set FENTITYCODE = FENTITYCODE+1 Where FENTITYNAME=EN;

    end;
  else
    begin
      EC :=1;
        select count(*) into FID from app_getcode;
        if FID=0  then
              begin
              Insert into APP_GETCODE(FPRIMARYKEY,FENTITYNAME,FENTITYCODE) Values(1,EN,2);
              end;
        else
              begin
              select max(FPRIMARYKEY) INTO a FROM APP_GETCODE;
              Insert into APP_GETCODE(FPRIMARYKEY,FENTITYNAME,FENTITYCODE) Values(a+1,EN,2);
              end;
        end if;

    end;
  end if;

  commit;

  exception
    when others then
      rollback;
end GETCODE;

--初始化時刪除表數據
create or replace procedure InitTable(tablename in varchar2) is
row_count integer;
tname varchar2(50);
strsql varchar2(250);
begin
tname:=tablename;
strsql := 'select count(*) from ' || tname;
execute immediate strsql into row_count;
if(row_count>0) then
 strsql := 'delete from ' || tname;
 execute immediate strsql;
end if;
end InitTable;

begin
inittable('SYSPERSON');
end;
--輸出select count(*) from SYSPERSON
-- 00

--初始化系統管理員信息
create or replace procedure InitAdmin
is
tempid number;
did number;--部門當前id
pid number;--人員當前id
rid number;--角色當前id
urid number;--用戶角色關聯id
mid number;--模塊當前id
rmid number;--角色模塊關聯id
begin
--清空相關表
inittable('rolelegalpower');
inittable('sysmodules');
inittable('app_userandrole');
inittable('sysrole');
inittable('sysperson');
inittable('app_department');
--獲取自增主鍵
getcode('APP_DEPARTMENT',did);
getcode('SYSPERSON',pid);
getcode('APP_USERANDROLE',urid);
getcode('sysrole',rid);
getcode('sysmodules',mid);
getcode('rolelegalpower',rmid);
--插入系統管理員角色
insert into sysrole(fid,fname,fremark,ftype) values(rid,'系統管理員','','其他');
--插入系統模塊和系統管理員權限
insert into sysmodules(fid,fname,parent,sequ,descp,moduletype,assemblyname,classname,range,param) values(mid,'系統維護',0,0,'',0,'','','','');
insert into rolelegalpower(fid,froleid,fmoduleid) values(rmid,rid,mid);
tempid:=mid;
getcode('sysmodules',mid);
getcode('rolelegalpower',rmid);
insert into sysmodules(fid,fname,parent,sequ,descp,moduletype,assemblyname,classname,range,param) values(mid,'組織管理',tempid,0,'',3,'Com.Jointown.BasisSet.dll','Com.Jointown.BasisSet.Win.DepartmentForm','','');
insert into rolelegalpower(fid,froleid,fmoduleid) values(rmid,rid,mid);
getcode('sysmodules',mid);
getcode('rolelegalpower',rmid);
insert into sysmodules(fid,fname,parent,sequ,descp,moduletype,assemblyname,classname,range,param) values(mid,'用戶管理',tempid,0,'',3,'Com.Jointown.MainGui.exe','Com.Jointown.MainGui.Modules.CzyManageForm','公司','');
insert into rolelegalpower(fid,froleid,fmoduleid) values(rmid,rid,mid);
getcode('sysmodules',mid);
getcode('rolelegalpower',rmid);
insert into sysmodules(fid,fname,parent,sequ,descp,moduletype,assemblyname,classname,range,param) values(mid,'角色管理',tempid,0,'',3,'Com.Jointown.MainGui.exe','Com.Jointown.MainGui.Modules.RoleForm','','');
insert into rolelegalpower(fid,froleid,fmoduleid) values(rmid,rid,mid);
getcode('sysmodules',mid);
getcode('rolelegalpower',rmid);
insert into sysmodules(fid,fname,parent,sequ,descp,moduletype,assemblyname,classname,range,param) values(mid,'計算機MAC信息管理',tempid,0,'',3,'Com.Jointown.MainGui.exe','Com.Jointown.MainGui.Modules.NetAddress','部門','');
insert into rolelegalpower(fid,froleid,fmoduleid) values(rmid,rid,mid);
--插入組織信息
insert into app_department(fpkid,ffkid,departmentname,departmentcode,zjm,state,parentdepartment,parentdepartmentcode,type,departdescription,operator,operatortime,departmenttype,searchcode,indexs)
values(did,0,'九州通醫藥集團股份有限公司','DBM00000031','JZTJT','啓用','九州通集團','0','公司','九州通醫藥集團股份有限公司','admin',sysdate,'非業務','01.01','');
tempid := did;
getcode('APP_DEPARTMENT',did);
insert into app_department(fpkid,ffkid,departmentname,departmentcode,zjm,state,parentdepartment,parentdepartmentcode,type,departdescription,operator,operatortime,departmenttype,searchcode,indexs)
values(did,0,'湖北九州通達科技開發有限公司','DBM00001034','kjgs','啓用','',tempid,'公司','','admin',sysdate,'非業務','01.01','');
tempid := did;
getcode('APP_DEPARTMENT',did);
insert into app_department(fpkid,ffkid,departmentname,departmentcode,zjm,state,parentdepartment,parentdepartmentcode,type,departdescription,operator,operatortime,departmenttype,searchcode,indexs)
values(did,0,'供應鏈事業部','DBM00001036','gylsyb','啓用','湖北九州通達科技開發公司',tempid,'部門','','admin',sysdate,'非業務','01.01','');
--插入人員用戶信息
insert into sysperson(fid,fname,floginname,forganizeid,fpassword,fdesc,fisactive,post,personcode,departmentcode,companycode,zjm,state,headdepassess)
values(pid,'系統管理員','admin',did,'111111','',1,'研發工程師','ZIY00022668','DBM00001036','DBM00001034','xtgly',0,'');
--插入用戶角色關聯信息
insert into app_userandrole(userid,roleid,fid)
values(pid,rid,urid);
commit;
  exception
    when others then
      rollback;
end InitAdmin;

 

 

select * from sysrole
select * from sysperson
select * from app_department
select * from app_userandrole
select * from sysmodules
select * from rolelegalpower

發佈了79 篇原創文章 · 獲贊 8 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章