使用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 ......
在Oracle数据库中''与NULL是等价的。均表示空值,而不是类似其他数据库上''表示空串,NULL表示空值。
ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key),
2、定义时已经加了NOT NULL限制条件的字段
说明:
1、NULL等价于没有任何值、是未知数。
2、NULL与 ......
1. 解释FUNCTION,PROCEDURE和PACKAGE区别
答:function 和procedure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而function将返回一个值在另一方面,Package是为了完成一个商业功能的一组function和procedure的集合。
2. 取某个序列的当前值的PL/SQL语 ......
来源:不详 作者:佚名 时间:2009-9-6 17:14:04 Tags: Orac 使用方法
需求:业务逻辑在处理数据时,需要返回Message并阻止程序的继续运行。但是,在存储过程使用Oracle数据库的Raise根本无法满足现在的要求。
解决方法:
使用RAISE_APPLICATION_ERROR
RAISE_APPLICATION_ERROR ( erro ......
1、序列定义
ORACLE:
CREATE SEQUENCE <sequence_name>
INCREMENT BY <integer>
&n ......