使用Oracle发送邮件
CREATE OR REPLACE PROCEDURE sendemailtest
(mailmsg IN Varchar2)
IS
--using mail server to send email.
mailconn UTL_SMTP.connection;
mailhost VARCHAR2 (20);
mailfrom VARCHAR2 (30);
BEGIN
--(1) open connection to mail server.
mailhost := 'xxx.xxx.xxx.xxx';
mailfrom := 'Test@MailAddress.com';
mailconn := UTL_SMTP.open_connection(mailhost);
UTL_SMTP.helo (mailconn, mailhost);
UTL_SMTP.mail (mailconn, mailfrom);
--(2) set recipients.
UTL_SMTP.rcpt (mailconn, 'ToMail@MailAddress.com');
--(3) send content.
UTL_SMTP.open_data (mailconn);
UTL_SMTP.write_data(mailconn, 'Date: '||to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')|| UTL_TCP.crlf);
UTL_SMTP.write_data(mailconn, 'from: fromWho' || UTL_TCP.crlf);
UTL_SMTP.write_data(mailconn, 'To: ToWho' || UTL_TCP.crlf);
UTL_SMTP.write_data(mailconn, 'Subject: TestSendMail' || UTL_TCP.crlf);
UTL_SMTP.write_data(mailconn, 'MIME-Version: 1.0' || UTL_TCP.crlf);
UTL_SMTP.write_data(mailconn, 'Content-Type: text/html; charset=utf-8' || UTL_TCP.crlf );
UTL_SMTP.write_data(mailconn, 'Content-Transfer-Encoding: "8Bit"' || UTL_TCP.crlf);
UTL_SMTP.write_data (mailconn, UTL_TCP.crlf || mailmsg);
UTL_SMTP.close_data (mailconn);
--(4) close connection.
UTL_SMTP.quit (mailconn);
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 100));
END;
相关文档:
1. 解释FUNCTION,PROCEDURE和PACKAGE区别
答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和procedure的集合。
2. 取某个序列的当前值的PL/SQL语 ......
Oracle developer以其快速的数据处理开发而闻名,其异常处理机制也是比较完善,不可小觑。
1、 异常的优点
如果没有异常,在程序中,应当检查每个命令的成功还是失败,如
BEGIN
SELECT ...
-- check for ’no data found’ error
SELECT ...
-- check for ’no data found’ error
SEL ......
我在http://zhidao.baidu.com/question/123262452.html?fr=msg 提的问题,整理到这里 非常感谢 zjwssg
的回答
排序内存涉及到PGA。
什么时候使用自动PGA内存管理?什么时候使用手动PGA内存管理?
白天系统正常运行时适合使用自动PGA内存管理,让Oracle根据当前负载自动管理、分配PGA内存。
夜里用户数 ......
select 'create sequence '||sequence_name||
' minvalue '||min_value||
' maxvalue '||max_value||
' start with '||last_number||
&n ......
fmobile输入参数,msg输出参数
--方法1
variable msg varchar2(100)
variable fmobile varchar2(100):='13424242890'
exec smsrun.PKG_SETNEIZHI.p_Whynomt(fmobile,msg)
print msg
--方法2
set serveroutput on;
declare
FMOBILE varchar2(100):='13424242890';
msg varchar2(100):= ......