WEB开发网
开发学院数据库DB2 DB2 9.7: 在 DB2 9.7 中使用 PL/SQL 匿名块 阅读

DB2 9.7: 在 DB2 9.7 中使用 PL/SQL 匿名块

 2009-10-16 00:00:00 来源:WEB开发网   
核心提示: 使用匿名块原型化 PL/SQL 代码在清单 3 中,应用程序开发人员希望实现一个机制来让业务需求与在 CUSTOMER 表中定义的客户进行通信(通过电子邮件),DB2 9.7: 在 DB2 9.7 中使用 PL/SQL 匿名块(3),为了满足需求,他决定编写一个简单的原型 PL/SQL 匿名块,

使用匿名块原型化 PL/SQL 代码

在清单 3 中,应用程序开发人员希望实现一个机制来让业务需求与在 CUSTOMER 表中定义的客户进行通信(通过电子邮件)。为了满足需求,他决定编写一个简单的原型 PL/SQL 匿名块,以向 CUSTOMER 表中的客户发送包含消息的电子邮件。当业务需求最终实现之后,可以改进原型化匿名块并轻松将其转换成新的 PL/SQL 存储过程。注意,这个匿名块使用新的内置包,包括 UTL_SMTP(用于发送电子邮件的包)和 DBMS_OUTPUT(向标准输出写入消息的包),这两个包都是 DB2 9.7 的一部分。

清单 3. 一个简单的原型 PL/SQL 匿名块,它向 CUSTOMER 表中的客户发送包含消息的电子邮件

SET SERVEROUTPUT ON 
/ 
 
DECLARE 
  conn UTL_SMTP.connection; 
  reply UTL_SMTP.reply; 
  msg VARCHAR2(1024); 
  sender VARCHAR2(255) DEFAULT 'demo\@ca.ibm.com'; 
  recipients VARCHAR2(255); 
  subject VARCHAR2(255) DEFAULT 'Quick notification'; 
  crlf VARCHAR2(2); 
 
BEGIN 
    
 crlf := UTL_TCP.CRLF; 
 FOR row IN (SELECT first_name, email FROM customer) LOOP 
   DBMS_OUTPUT.PUT_LINE('Sending test email to customer ' || row.first_name || '...'); 
   recipients := row.email; 
   msg := 'FROM: ' || sender || crlf || 
        'TO: ' || recipients || crlf || 
        'SUBJECT: ' || subject || crlf || 
        crlf || 
        'Hi ' || row.first_name || ', this is a test notification.'; 
 
   UTL_SMTP.OPEN_CONNECTION('smtp_server.ibm.com', 25, conn, 10, reply ); 
   UTL_SMTP.HELO(conn, 'localhost'); 
   UTL_SMTP.MAIL(conn, sender); 
   UTL_SMTP.RCPT(conn, recipients); 
   UTL_SMTP.DATA(conn, msg); 
   UTL_SMTP.QUIT(conn); 
  END LOOP; 
END; 
/ 
 
Output: 
Sending test email to customer Mike... 
Sending test email to customer Joan... 
Sending test email to customer Colin... 
Sending test email to customer Graham... 
Sending test email to customer Patsy... 

上一页  1 2 3 4 5  下一页

Tags:DB DB 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接