打印本文 打印本文 关闭窗口 关闭窗口
ORACLE之常用FAQ V1.0 (1)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1695  更新时间:2009/4/22 22:03:52  文章录入:mintao  责任编辑:mintao
||rpad(c_part.partition_name,30,''''.'''') || lpad(miCount, 10,''''.''''));
END LOOP;
END IF;
END LOOP;
END;
[A]怎么在Oracle中发邮件
[Q]可以利用utl_smtp包发邮件,以下是一个发送简单邮件的例子程序
/****************************************************************************
parameter: Rcpter in varchar2 接收者邮箱
Mail_Content in Varchar2 邮件内容
desc: ·发送邮件到指定邮箱
·只能指定一个邮箱,如果需要发送到多个邮箱,需要另外的辅助程序
****************************************************************************/
CREATE OR REPLACE PROCEDURE sp_send_mail( rcpter IN VARCHAR2,
mail_content IN VARCHAR2)
IS
conn utl_smtp.connection;
--write title
PROCEDURE send_header(NAME IN VARCHAR2, HEADER IN VARCHAR2) AS
BEGIN
utl_smtp.write_data(conn, NAME||'''': ''''|| HEADER||utl_tcp.CRLF);
END;
BEGIN
--opne connect
conn := utl_smtp.open_connection(''''smtp.com'''');
utl_smtp.helo(conn, ''''oracle'''');
utl_smtp.mail(conn, ''''oracle info'''');
utl_smtp.rcpt(conn, Rcpter);
utl_smtp.open_data(conn);
--write title
send_header(''''From'''', ''''Oracle Database'''');
send_header(''''To'''', ''''"Recipient" '''');
send_header(''''Subject'''', ''''DB Info'''');
--write mail content
utl_smtp.write_data(conn, utl_tcp.crlf || mail_content);
--close connect
utl_smtp.close_data(conn);
utl_smtp.quit(conn);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
BEGIN
utl_smtp.quit(conn);
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
WHEN OTHERS THEN
NULL;
END sp_send_mail;
[A]怎么样在Oracle中写操作系统文件,如写日志
[Q]可以利用utl_file包,但是,在此之前,要注意设置好Utl_file_dir初始化参数
/**************************************************************************
parameter:textContext in varchar2 日志内容
desc: ·写日志,把内容记到服务器指定目录下
·必须配置Utl_file_dir初始化参数,并保证日志路径与Utl_file_dir路径一致或者是其中一个
****************************************************************************/
CREATE OR REPLACE PROCEDURE sp_Write_log(text_context VARCHAR2)
IS
file_handle utl_file.file_type;
Write_content VARCHAR2(1024);
Write_file_name VARCHAR2(50);
BEGIN
--open file
write_file_name := ''''db_alert.log'''';
file_handle := utl_file.fopen(''''/u01/logs'''',write_file_name,''''a'''');
write_content := to_char(SYSDATE,''''yyyy-mm-dd hh24:mi:ss'''')||''''||''''||text_context;
--write file
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,write_content);
END IF;
--close file
utl_file.fclose(file_handle);
EXCEPTION
WHEN OTHERS THEN
BEGIN
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
END IF;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END sp_Write_log;

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口