logo       

How to include "EXCEPTION" handling block in PL/TCL function.: msg#00059

Subject: How to include "EXCEPTION" handling block in PL/TCL function.

Hi,

 

How to include “EXCEPTION” handling block in PL/TCL function.

 

I have attached below an e-mail program written in PL/TCL function.

 

I want to log messages into a table from a function “log_error” written in 'plpgsql' whenever any exception occurs (like unable to connect/invalid email etc.)

 

Pls update the code attached below.

 

Thanks

Dinesh Pandey

========================

 

CREATE OR REPLACE FUNCTION PGMAIL(text, text, text, text, text, text) RETURNS INT4 AS '

          set mailfrom   $1

          set mailto      $2

          set mailcc      $3

          set mailserver          $4

          set mailsubject $5

          set mailmessage $6

 

# Mail Server 

          set myHost $mailserver

 

# Mail Server SMTP Port     

          set myPort 25

          set mySock [socket $myHost $myPort]

         

# Mail To Address

          set toemailaddress_start [string first "<" $mailto]

         

          if {$toemailaddress_start != -1} {

                   set toemailaddress_finish [string first ">" $mailto]

                   set toemailaddress_start [expr $toemailaddress_start + 1]

                   set toemailaddress_finish [expr $toemailaddress_finish - 1]

                   set toemailaddress [string range $mailto $toemailaddress_start $toemailaddress_finish]

          } else {

                   set toemailaddress $mailto

          }

 

# Mail Cc Address

          set ccemailaddress_start [string first "<" $mailcc]

         

          if {$ccemailaddress_start != -1} {

                   set ccemailaddress_finish [string first ">" $mailcc]

                   set ccemailaddress_start [expr $ccemailaddress_start + 1]

                   set ccemailaddress_finish [expr $ccemailaddress_finish - 1]

                   set ccemailaddress [string range $mailcc $toemailaddress_start $ccemailaddress_finish]

          } else {

                   set ccemailaddress $mailcc

          }

 

# Mail From Address 

          set fromemailaddress_start [string first "<" $mailfrom]

         

          if {$fromemailaddress_start != -1} {

                   set fromemailaddress_finish [string first ">" $mailfrom]

                   set fromemailaddress_start [expr $fromemailaddress_start + 1]

                   set fromemailaddress_finish [expr $fromemailaddress_finish - 1]

                   set fromemailaddress [string range $mailfrom $fromemailaddress_start $fromemailaddress_finish]

          } else {

                   set fromemailaddress $mailfrom

          }

         

          fileevent $mySock writable [list svcHandler $mySock]

                   fconfigure $mySock -buffering none

                  

                   puts $mySock "helo $mailserver"

                  

                   gets $mySock name

                   puts $mySock "mail from: $fromemailaddress"

                  

                   gets $mySock name

                   puts $mySock "rcpt to: $toemailaddress"

                  

                   gets $mySock name

                   puts $mySock "rcpt cc: $ccemailaddress"

                  

                   gets $mySock name

                   puts $mySock "data"

                  

                   gets $mySock name

                   puts $mySock "To: $mailto"

                   puts $mySock "Cc: $mailcc"

                   puts $mySock "From: $mailfrom"

                   puts $mySock "Subject: $mailsubject"

                  

                   puts $mySock ""

                   puts $mySock "$mailmessage"

                  

                   puts $mySock "."

                   gets $mySock name

         

          close $mySock

         

          return 1'

 

################################

#Exception handling block here

#sp_exec log_error(………);

 

LANGUAGE 'pltclu';

 

 

========================

 

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
boot-loaders.gr...    php.pear.genera...    debugging.valgr...    kde.redhat.user...    text.xml.xsl.ge...    culture.languag...    hardware.microc...    java.servicemix...    redhat.release....    web.zope.plone....    user-groups.lin...    opendarwin.webk...    video.mjpeg.use...    sysutils.bcfg2....    encryption.gpg....    lx-office.devel...    xfree86.forum/2...    mail.mutt.devel...    acpi.devel/2003...    qnx.openqnx.dev...    network.irc.irs...    freebsd.devel.m...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe