在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包不許數據庫開發者實時的看到消息。