使用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;
相关文档:
先来看看官方文档中对这个参数的解释
CURSOR_SHARING
PropertyDescription
Parameter type
String
Syntax
CURSOR_SHARING = { SIMILAR | EXACT | FORCE }
Default value
EXACT
Modifiable
ALTER SESSION, ALTER SYSTEM
Basic
No
CURSOR_SHARING determines what kind of SQL statements can share the same cu ......
一直听到的都是说尽量用exists不要用in,因为exists只判断存在而in需要对比值,所以exists比较快,但看了看网上的一些东西才发现根本不是这么回事。
下面这段是抄的
Select * from T1 where x in ( select y from T2 )
执行的过程相当于:
select *
......
来源:不详 作者:佚名 时间:2009-9-6 17:14:04 Tags: Orac 使用方法
需求:业务逻辑在处理数据时,需要返回Message并阻止程序的继续运行。但是,在存储过程使用Oracle数据库的Raise根本无法满足现在的要求。
解决方法:
使用RAISE_APPLICATION_ERROR
RAISE_APPLICATION_ERROR ( erro ......
Oracle developer以其快速的数据处理开发而闻名,其异常处理机制也是比较完善,不可小觑。
1、 异常的优点
如果没有异常,在程序中,应当检查每个命令的成功还是失败,如
BEGIN
SELECT ...
-- check for ’no data found’ error
SELECT ...
-- check for ’no data found’ error
SEL ......
前段时间,新公司的面试官问了一个问题,临时表的作用,以前我们用缓存中间数据时候,都是自己建一个临时表。其实oracle本身在这方面就已经考虑很全了,除非有些高级应用,我再考虑自己创建临时表。由于本人对临时表的了解不是很多,于是回来搜集下这方面的资料,弥补下这块的不足。
1、前言
......