2016-10-14 7 views
0

안녕하세요. PL/SQL 개발에 참여 중입니다. 귀찮은 오류가 발생했습니다. 뭔가 추가되었을 때 이메일을 보낼 수있는 방아쇠를 만들려고합니다. "JDEF"데이터베이스.TRIGGER SQL을 사용하여 전자 메일을 보낼 때 컴파일 오류가 발생했습니다.

CREATE OR REPLACE TRIGGER Send_Email 
AFTER INSERT 
ON JDEF 
BEGIN 
     EXEC msdb.dbo.sp_send_dbmail 
      @profile_name = 'me', 
      @recipients = '[email protected]', 
      @body = 'The stored procedure finished successfully.', 
      @subject = 'Automated Success Message' 
END 

오류 컴파일되어 두 라인 : EXEC msdb.dbo.sp_send_dbmail 및 @profile_name = '나' 이 내 코드입니다. 그들은 "MSDB"및 "에 대해, '다른 사람으로 대체 기호 컴파일 말한다.

이 도와 당신에게 어떤 아이디어가 있습니까?

들으

귀하의 코드는 오라클 표준적인 방법으로 MSSQL과 같은
+1

해당 구문은 Oracle에서 유효하지 않습니다. T-SQL (마이크로 소프트)이지만 유효한 PL/SQL이 아닙니다. –

+0

@ a_horse_with_no_name 답변 해 주셔서 감사합니다. 제안 할 대안이 있습니까? –

+0

사용자가 '롤백'을하면 어떻게됩니까? 이 경우 메일은 어쨌든 전송됩니다! –

답변

0

이메일을 보내도록하는 것은 예를 들면 다음과 같습니다.

UTL_MAIL.send(sender => '[email protected]', 
      recipients => '[email protected]', 
       subject => 'Automated Success Message', 
       message => 'The stored procedure finished successfully.', 
      mime_type => 'text; charset=us-ascii'); 

하지만 UTL_MAIL를 사용하기 전에이 활성화 될 필요가 메일을 보낼 수있는 또 다른 패키지 것은이 도움이 될 수 있습니다 UTL_TCP 입니다 : http://www.orafaq.com/wiki/Send_mail_from_PL/SQL

+0

매우 도움이됩니다. 고맙습니다. –

관련 문제