密程序数据库触发子.sql
来自「oracle 10g管理员管理数据库SQL,好资料!」· SQL 代码 · 共 48 行
SQL
48 行
Create or Replace Function ENCRYPT(Inpass In Varchar2,
IN_GH In Varchar2,
IN_SS In Varchar2) Return Varchar2 Is
bcs varchar2(20);
bcs1 number;
cs number;
jg number;
m_gh VARCHAR2(4);
m_mm VARCHAR2(20);
Begin
m_gh := IN_GH;
m_mm := INPASS;
cs := TO_NUMBER(IN_SS);
If cs <= 1 then
cs := 77;
end if;
bcs := substr(to_char(ascii(substr(m_gh, 1, 1))), 1, 2);
If bcs < '1' then
bcs := '7';
end if;
m_gh := substr(m_gh, 2);
Loop
EXIT WHEN nvl(length(m_gh), 0) = 0;
bcs := bcs || substr(to_char(ascii(substr(m_gh, 1, 1))), -1, 1);
m_gh := substr(m_gh, 2);
End loop;
Loop
EXIT WHEN nvl(length(m_mm), 0) = 0;
bcs := bcs || substr(to_char(ascii(substr(m_mm, 1, 1))), -1, 1);
m_mm := substr(m_mm, 2);
End loop;
bcs1 := to_number(bcs);
jg := cs * bcs1;
Loop
EXIT WHEN length(to_char(jg)) > 13;
jg := jg * cs;
End loop;
RETURN(IN_SS || substr(to_char(jg), 1, 14));
End;
select ENCRYPT('32132323','22','1') from dual;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?