### UTL_MAIL与Oracle Scheduler详解 #### UTL_MAIL:Oracle中的邮件发送工具 UTL_MAIL是Oracle提供的一个用于发送电子邮件的内置程序包。通过UTL_MAIL,开发人员可以在Oracle环境中轻松实现邮件通知功能,这对于系统监控、错误报告及日常业务处理都非常有用。 ##### 安装与配置UTL_MAIL 1. **SMTP服务器设置** - 需要正确配置SMTP服务器参数。在数据库管理员权限下执行以下命令: ```sql Alter System Set SMTP_OUT_SERVER = 'smtp.server.com' Scope = Spfile; Shutdown Immediate; Startup; Show parameters smtp; ``` - 这些步骤确保了SMTP服务器地址被正确地配置,并且该配置会在下次启动时生效。 2. **安装UTL_MAIL** - 在ORACLE的安装目录下,可以通过运行特定脚本来安装UTL_MAIL: - **UNIX/Linux环境**: ```sql @?/rdbms/Admin/utlmail.sql @?/rdbms/Admin/prvtmail.plb ``` - **Windows环境**: ```sql SQL @?\rdbms\Admin\utlmail.sql; SQL @?\rdbms\Admin\prvtmail.plb; ``` 3. **发送邮件** - 发送简单邮件: ```sql Begin utl_mail.send( sender => '[email protected]', recipient => '[email protected]', message => 'For latest downloads visit chenjian', subject => 'weihong successed' ); End; ``` - 发送带附件的邮件(如图像): ```sql Create Or Replace Procedure send_mail_logo Is Begin utl_mail.send_attach_raw( sender => '[email protected]', recipients => '[email protected]', message => 'See attach', subject => 'test', mime_type => 'text/html', attachment => 'oracle.gif', att_inline => True, att_mime_type => 'image/gif', att_filename => 'test.gif' ); End; / ``` - 发送文本文件作为附件: ```sql Create Or Replace Procedure send_mail_file Is Begin utl_mail.send_attach_varchar2( sender => '[email protected]', recipients => '[email protected]', message => 'Test', subject => 'Hello', mime_type => 'text/html', attachment => ('text.txt'), att_inline => False, att_mime_type => 'text/plain', att_filename => 'text.txt' ); End; / ``` #### Oracle Scheduler:计划任务的强大工具 Oracle Scheduler是一个强大的工具,用于在指定的时间或基于特定事件自动执行各种操作。它可以用来调度复杂的任务序列,例如定期备份、数据清理等。 ##### 创建Job 1. **通过PL/SQL代码块创建Job** - 使用`CREATE_JOB`过程来定义一个Job: ```sql Begin dbms_scheduler.create_job( job_name => 'test_name', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN ... END;', start_time => systimestamp, repeat_interval => 'FREQUENCY=HOURLY;INTERVAL=1', ENABLE => TRUE ); End; / ``` 2. **通过Program创建Job** - 首先创建一个Program: ```sql Begin dbms_scheduler.create_program( program_name => 'prog_name', program_type => 'PLSQL_BLOCK', program_action => 'BEGIN ... END;' ); End; / ``` - 然后通过Program创建Job: ```sql Begin dbms_scheduler.create_job( job_name => 'test_job', program_name => 'prog_name', start_date => systimestamp, repeat_interval => 'FREQUENCY=DAILY', ENABLE => TRUE ); End; / ``` 3. **通过Stored Procedure创建Job** - 创建一个程序以调用存储过程: ```sql Begin dbms_scheduler.create_program( program_name => 'prog_name1', program_type => 'STORED_PROCEDURE', program_action => 'EMP_REPORT' ); End; / ``` - 定义Job参数: ```sql DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name => 'prog_name1', argument_name => 'dept_id', data_type => 'NUMBER', default_value => '50' ); ``` - 创建Job: ```sql Begin dbms_scheduler.create_job( job_name => 'job_dept_report', program_name => 'prog_name1', start_date => systimestamp, repeat_interval => 'FREQUENCY=DAILY', ENABLE => TRUE ); End; / ``` 以上示例展示了如何利用UTL_MAIL和Oracle Scheduler来自动化邮件发送任务及计划性操作,这对于提高系统的可维护性和响应能力具有重要意义。通过这些技术的应用,可以有效地减少人工干预,提升工作效率。
















Alter System Set SMTP_OUT_SERVER='smtp.server.com' Scope=Spfile;
表示ORACLE安装的宿主目录
@? /rdbms/Admin/utlmail.Sql
@?/rdbms/Admin/prvtmail.plb
--2.windowns对应执行SQL
@?\rdbms\Admin\utlmail.Sql;
@?\rdbms\Admin\prvtmail.plb;
--3重启ORACLE ,修改PARAMETER的参数才会生效
Shutdown Immediate;
startup;
--查看对应参数是否已经正确修改成功
Show parameter smtp;
--4.编写不带附件的send发送邮件样例
Begin
utl_mail.send('[email protected]',
'[email protected]',
message=>'For latest downloads visit chenjian',
End;
--4.1。编写带附件(图片)的发送邮件样例
Create Or Replace Procedure send_mail_logo Is
Begin
utl_mail.send_attach_raw(
sender=>'[email protected]',
recipients=>'[email protected]',
message=>'see attach',
subject=>'test',
mime_type=>'text/html'
attachement=>'oracle.gif',
att_inline=>True,
att_mime_type=>'image/gif',
att_filename=>'test.gif'
);
End;
/
--4.2编写带附件(普通文本的)发送邮件样例
create or replace procedure send_mail_file is
begin
utl_mail.send_attach_varchar2(
sender=>'[email protected]',
recipients=>'[email protected]',
message=>'test',
subject=>'hello',
mime_type=>'text/html',
剩余7页未读,继续阅读


- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- COMSOL中单个金纳米颗粒光热仿真的多物理场复现与分析 · 光热效应 完整版
- maven下载安装与配置教程.md
- maven下载安装与配置教程.md
- 基于NVMeoF与RNIC技术的FPGA实现RDMA扩展NVMe存储系统及其应用 (2025年)
- 【IOS应用源码】myipadv2.zip
- 【IOS应用源码】SUSHIDO Project.zip
- 【IOS应用源码】UILabdel 2.zip
- 【IOS应用源码】UILabdel.zip
- 【IOS应用源码】UINavigationControllerWithToolbar.zip
- 【IOS应用源码】Untitled.zip
- 【IOS应用源码】ViewSendData解决键盘遮挡和view传值的一个小例子.zip
- 【IOS应用源码】UITableViewCell 视图扩展.zip
- 【IOS应用源码】WeatherInfoSample.zip
- 【IOS应用源码】VPPMap for iOS.zip
- 【IOS应用源码】Weather.zip
- 【IOS应用源码】WeatherMap.zip


