WEB开发网
开发学院数据库Oracle 利用oracle存储过程来发送邮件 阅读

利用oracle存储过程来发送邮件

 2008-09-01 12:46:14 来源:WEB开发网   
核心提示:最近将一些程序写成存储过程执行,一直都想通过Email方式通知我,利用oracle存储过程来发送邮件,每次执行的结果是否正确,在网上找了一下通过oracle发送Email,这样使每天的例行工作简单化,高效化,虽然是从网上"抄"来的,一找就找到了,调试一下便可以用了

最近将一些程序写成存储过程执行,一直都想通过Email方式通知我,每次执行的结果是否正确,在网上找了一下通过oracle发送Email,一找就找到了,调试一下便可以用了,现在记录一下,以便以后的学习使用!

目前我计划将一些统计的报表及数据库的信息等,每天能够定时的发到我的邮箱里,这样使每天的例行工作简单化,高效化,虽然是从网上"抄"来的,但会认真的研读一下代码,提高一下!

1.先创建demo_base64包,这里包括一个函数encode主要是用来解码

   CREATEORREPLACEPACKAGEdemo_base64IS
  --Base64-encodeapieceofbinarydata.
  --
  --Notethatthisencodefunctiondoesnotsplittheencodedtextinto
  --multiplelineswithnomorethan76byteseachasrequiredby
  --theMIMEstandard.
  --
  FUNCTIONencode(rINRAW)RETURNVARCHAR2;
  END;

2.创建demo_base64包体

   CREATEORREPLACEPACKAGEBODYdemo_base64IS
  TYPEvc2_tableISTABLEOFVARCHAR2(1)INDEXBYBINARY_INTEGER;
  mapvc2_table;
  --InitializetheBase64mapping
  PROCEDUREinit_mapIS
  BEGIN
  map(0):='A';map(1):='B';map(2):='C';map(3):='D';map(4):='E';
  map(5):='F';map(6):='G';map(7):='H';map(8):='I';map(9):='J';
  map(10):='K';map(11):='L';map(12):='M';map(13):='N';map(14):='O';
  map(15):='P';map(16):='Q';map(17):='R';map(18):='S';map(19):='T';
  map(20):='U';map(21):='V';map(22):='W';map(23):='X';map(24):='Y';
  map(25):='Z';map(26):='a';map(27):='b';map(28):='c';map(29):='d';
  map(30):='e';map(31):='f';map(32):='g';map(33):='h';map(34):='i';
  map(35):='j';map(36):='k';map(37):='l';map(38):='m';map(39):='n';
  map(40):='o';map(41):='p';map(42):='q';map(43):='r';map(44):='s';
  map(45):='t';map(46):='u';map(47):='v';map(48):='w';map(49):='x';
  map(50):='y';map(51):='z';map(52):='0';map(53):='1';map(54):='2';
  map(55):='3';map(56):='4';map(57):='5';map(58):='6';map(59):='7';
  map(60):='8';map(61):='9';map(62):='+';map(63):='/';
  END;
  FUNCTIONencode(rINRAW)RETURNVARCHAR2IS
  ipls_integer;
  xpls_integer;
  ypls_integer;
  vVARCHAR2(32767);
  BEGIN
  --Forevery3bytes,splittheminto46-bitunitsandmapthemto
  --theBase64characters
  i:=1;
  WHILE(i+2<=utl_raw.length(r))LOOP
  x:=to_number(utl_raw.substr(r,i,1),'0X')*65536+
  to_number(utl_raw.substr(r,i+1,1),'0X')*256+
  to_number(utl_raw.substr(r,i+2,1),'0X');
  y:=floor(x/262144);v:=v||map(y);x:=x-y*262144;
  y:=floor(x/4096);v:=v||map(y);x:=x-y*4096;
  y:=floor(x/64);v:=v||map(y);x:=x-y*64;
  v:=v||map(x);
  i:=i+3;
  ENDLOOP;
  --Processtheremainingbytesthathasfewerthan3bytes.
  IF(utl_raw.length(r)-i=0)THEN
  x:=to_number(utl_raw.substr(r,i,1),'0X');
  y:=floor(x/4);v:=v||map(y);x:=x-y*4;
  x:=x*16;v:=v||map(x);
  v:=v||'==';
  ELSIF(utl_raw.length(r)-i=1)THEN
  x:=to_number(utl_raw.substr(r,i,1),'0X')*256+
  to_number(utl_raw.substr(r,i+1,1),'0X');
  y:=floor(x/1024);v:=v||map(y);x:=x-y*1024;
  y:=floor(x/16);v:=v||map(y);x:=x-y*16;
  x:=x*4;v:=v||map(x);
  v:=v||'=';
  ENDIF;
  RETURNv;
  END;
  BEGIN
  init_map;
  END;

1 2  下一页

Tags:利用 oracle 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接