вопрос

tets
Дата: 09.06.2006 08:32:49
Всем привет, вопрос начинающего. Создал Java Sources, откомпилировал всё нормально. Что я должен сделать дальше, как в SQL Plus сделать выполнение ? Я должен создать пакет или процедуру ? Заранее извиняюсь за глупый вопрос. И спасибо за возможный ответ.
------------------------------------
import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import java.util.Date;
import java.util.Properties;

public class SendFile {

  private static final String FROM = "Email.ru";

  private static final String TO = "Email.ru";

  private static final String HOST = "mail.ttt.ru";

  private static final String CHARSET = "utf-8";

  private static final String BODY = "Всем привет !";

  private static final String SUBJECT = "Sent UTF file Отправка UTF файла";

  private static final String FILE_NAME = "test.txt";

  public static void main(String[] args)
    throws Exception {
    boolean debug = true;
    // Create some properties and get the default Session
    Properties props = System.getProperties();
    props.put("mail.smtp.host", HOST);
    Session session = Session.getInstance(props, null);
    session.setDebug(debug);
    // Create a message
    MimeMessage msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(FROM));
    InternetAddress[] address = {new InternetAddress(TO)};
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject(SUBJECT, CHARSET);
    // Create and fill the first message part
    MimeBodyPart bodyPart = new MimeBodyPart();
    bodyPart.setText(BODY, CHARSET);
    // Create the second message part
    MimeBodyPart attachmentPart = new MimeBodyPart();
    // Аttach the text file to the message
    ByteArrayDataSource dataSource = new ByteArrayDataSource(
      BODY, "text/plain; charset=" + CHARSET
    );
    attachmentPart.setDataHandler(new DataHandler(dataSource));
    attachmentPart.setFileName(FILE_NAME);
    // Create the Multipart and add its parts to it
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(bodyPart);
    mp.addBodyPart(attachmentPart);
    // Add the Multipart to the message
    msg.setContent(mp);
    // Set the Date: header
    msg.setSentDate(new Date());
   // Send the message
    Transport.send(msg);
  }
}
--------------------------
semenar
Дата: 09.06.2006 09:03:12
А дальше функцию строишь, и оную вызываешь из Plus передав данные через нее парметры(например кому шлешь, или тему и вернув флаг отработки успешности отправки) Что-то типа так примерно:

CREATE OR REPLACE function send(send_to in varchar2) return number
as
language java name 'SendFile.main(java.lang.String) return oracle.sql.NUMBER';
/
zirex
Дата: 09.06.2006 09:04:46
нужно яву еще и в процедуру завернуть - вот пример
а вообще в поиске много примеров
куе
Дата: 09.06.2006 12:59:47
Попробовал так
-----
CREATE PACKAGE "SEND_FILE" as
procedure main as
language java name 'SENDFILE.main(java.lang.String)';
end;
-----
выдаёт ошибку

Line # = 2 Column # = 3 Error Text = PL/SQL: Declaration ignored
Line # = 3 Column # = 19 Error Text = PLS-00311: объявление "SENDFILE.main(java.lang.String)" неполное или неправильно сформировано
mcureenab
Дата: 09.06.2006 13:22:35
Так наверное класс не SENDFILE называется, а SendFile!?
mcureenab
Дата: 09.06.2006 13:23:57
У procedure main as тоже должен быть параметр как у SendFile.main.
куе
Дата: 09.06.2006 13:41:38
Спасибо за наводку.

сделал вот так
---------
as
procedure main(p_args varchar2) as
language java name 'SendFile.main(java.lang.String[])';
end;
---------
declare
begin
send_file.main('А этот текст куда идёт ? ');
end;
/
---------

В результате получаю сообщение всё нормально,
только вот не пойму текст 'А этот текст куда идёт ? '
ни куда не записывается ?
========
Зачем он тогда объявляется в Java Sources

public static void main(String[] args)
---------
и в пакете

language java name 'SendFile.main(java.lang.String[])';
=========