oracle开发技巧-12.htm

来自「微软数据库开发梦工场多媒体教学-oracle篇.rar,是多媒体教学的」· HTM 代码 · 共 52 行

HTM
52
字号
<body bgcolor="#000000">
<p><font color="#FFFFFF"> <font color="#009900">ORACLE应用经验(4)-加密程序 </font><br>
  <br>
  </font></p>
<p><font color="#FFFFFF">-------------1. 加密程序数据库触发子scjmmm---------------------- 
  <br>
  REM 对GHXXB制立数据库触发子(当INSERT OR UPDATE GHXXB时触发) <br>
  drop trigger scjmmm; <br>
  create or replace trigger scjmmm <br>
  before insert or update of mm On ghxxb For each Row <br>
  Begin <br>
  :new.mm:=ENCRYPT(:new.mm,:NEW.GH,TO_CHAR(SYSDATE,'SS')); <br>
  End; <br>
  / <br>
  -------------2. 密码的加密程序ENCRYPT---------------------- <br>
  Create or Replace <br>
  Function ENCRYPT (Inpass In Varchar2,IN_GH In Varchar2,IN_SS In Varchar2) <br>
  Return Varchar2 Is <br>
  bcs varchar2(20); <br>
  bcs1 number; <br>
  cs number; <br>
  jg number; <br>
  m_gh VARCHAR2(4); <br>
  m_mm VARCHAR2(20); <br>
  Begin <br>
  m_gh:=IN_GH; <br>
  m_mm:=INPASS; <br>
  cs:=TO_NUMBER(IN_SS); <br>
  If cs&lt;=1 then cs:=77 ;end if; <br>
  bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2); <br>
  If bcs&lt;'1' then bcs:='7' ;end if; <br>
  m_gh:=substr(m_gh,2); <br>
  Loop EXIT WHEN nvl(length(m_gh),0)=0 ; <br>
  bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1); <br>
  m_gh:=substr(m_gh,2); <br>
  End loop; <br>
  Loop EXIT WHEN nvl(length(m_mm),0)=0 ; <br>
  bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1); <br>
  m_mm:=substr(m_mm,2); <br>
  End loop; <br>
  bcs1:=to_number(bcs); <br>
  jg:=cs*bcs1; <br>
  Loop EXIT WHEN length(to_char(jg))&gt;13; <br>
  jg:=jg*cs ; <br>
  End loop; <br>
  RETURN(IN_SS||substr(to_char(jg),1,14)); <br>
  End; <br>
  / <br>
  grant execute on ENCRYPT to public; <br>
  <br>
  </font></p>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?