通过程序包调用.exe发送邮件

时间:2018-10-04 10:23:52

标签: oracle plsql exe

我们正在使用.EXE文件,该文件从给定目录中读取.Xml文件来发送邮件, 要运行此.EXE,我们使用以下功能

   FUNCTION OSCommand_Run (Command IN STRING)
      RETURN VARCHAR2
   IS
      LANGUAGE JAVA
      NAME 'OSCommand.Run(java.lang.String) return int';

和。

       PROCEDURE P_SEND_DB_MAIL (
                             P_FROM               VARCHAR2,
                             P_TO                 VARCHAR2,
                             P_CC                 VARCHAR2,
                             P_BCC                VARCHAR2,
                             P_SUBJECT            VARCHAR2,
                             P_BODY               VARCHAR2)
   AS

      V_FILE_NAME   VARCHAR2 (250);
      V_DIR_PATH    VARCHAR2 (250);
      X             VARCHAR2 (2000);
   BEGIN
      SELECT DIRECTORY_PATH
        INTO V_DIR_PATH
        FROM ALL_DIRECTORIES
       WHERE DIRECTORY_NAME = 'DIRECTORY';


      --this is to generate XML file
      GENERATE_XML ('MAIL_DIR',                  
                    V_FILE_NAME || '.xml',       
                    P_FROM,
                    P_TO,
                    P_CC,
                    P_BCC,
                    P_SUBJECT,
                    P_BODY    
                          );

      --calling function to execute .exe
      x :=
         OSCommand_Run (
               V_DIR_PATH
            || 'SendMail.exe '
            || V_DIR_PATH
            || V_FILE_NAME
            || '.xml');

   END;

如果我们在任何存储的程序包中调用此函数,则该函数将不起作用且不会给出错误或异常 如果我们在普通(开始..结束)PL代码之间调用它,它将很好用! 有什么解释

0 个答案:

没有答案