在oracle8i中引入了utl_smtp包(smtp代表simple mail transfer protocol简单邮件传送协议,使用tcp端口25在客户机和服务器之间建立通信联络),使开发者能够从数据库发送电子邮件。
只有安装带有java虚拟机(jvm)的8i或更高的版本才能使用utl_smtp。 此外还必须把plsql.jar载入数据库中。否则,当调用utl_smtp api来发送电子邮件的时候我们将得到下面的异常:ora - 29540 : class oracle/plsql/net/tcpconnection does not exist。
procedure setsender(psender in varchar2); function getsender return varchar2;
procedure setrecipient(precipient in varchar2); function getrecipient return varchar2;
procedure setccrecipient(pccrecipient in varchar2); function getccrecipient return varchar2;
procedure setmailhost(pmailhost in varchar2); function getmailhost return varchar2;
procedure setsubject(psubject in varchar2); function getsubject return varchar2;
procedure send(pmessage in varchar2);
procedure send(psender in varchar2, precipient in varchar2, pmailhost in varchar2, pccrecipient in varchar2 := null, psubject in varchar2 := null, pmessage in varchar2 := null);
procedure send(psender in varchar2, precipient in varchar2, pmailhost in varchar2, pccrecipient in varchar2 := null, psubject in varchar2 := null, pmessage in varchar2 := null); 另一个版本只有当提供pmessage参数值时执行:
dbms_output包也有其他的缺点。 例如,它不接受可变的布尔类型以及它有255字符每行的限制(如果你想输出一个长的消息的话,那么你会得到这个异常:ora - 20000 : oru - 10028 : line length overflow, limit of 255 bytes per line)。 把它的缺点全部列出这已经超出本文的范围了,但是重要结论就是dbms_output包不许数据库开发者实时的看到消息。