Getting bogged down with PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared [message #629035] |
Tue, 02 December 2014 11:50 |
buggleboy007
Messages: 282 Registered: November 2010 Location: Canada
|
Senior Member |
|
|
I am trying to capture an error message from the exception block(a private procedure) and then pass it out to the calling procedure. I am getting bogged down with an error "PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared". How can I overcome this or how can I pass the error message to the main procedure.
The situation is as follows:
-- Local variable
CRLF CONSTANT VARCHAR2(2) := CHR(13) || CHR(10);
-- --------------------------------------------------------------------------------
-- FORWARD DECLARATIONS
-- -----------------------------------------------------------------------------
PROCEDURE p_sendmail(p_sender_email IN VARCHAR2,
p_from IN VARCHAR2,
p_to IN VARCHAR2,
msg_subject IN VARCHAR2 DEFAULT NULL,
p_msg_body IN LONG DEFAULT NULL,
p_err_message1 OUT VARCHAR2);
PROCEDURE p_sendmail(p_sender_email IN VARCHAR2,
p_from IN VARCHAR2,
p_to IN VARCHAR2,
msg_subject IN VARCHAR2 DEFAULT NULL,
p_msg_body IN LONG DEFAULT NULL,
p_err_message1 OUT VARCHAR2 ) is
v_to_list LONG;
v_cc_list LONG;
v_bcc_list LONG;
v_date VARCHAR2(255) DEFAULT TO_CHAR(SYSDATE, 'DD MON YYYY HH24:MI:SS PM');
g_mail_conn UTL_SMTP.CONNECTION;
SMTP_HOST CONSTANT VARCHAR2(256) := 'smtp-abc.defg.ca';
SMTP_PORT CONSTANT PLS_INTEGER := 25;
BEGIN
g_mail_conn := UTL_SMTP.OPEN_CONNECTION(SMTP_HOST, SMTP_PORT);
UTL_SMTP.helo(g_mail_conn, SMTP_HOST);
UTL_SMTP.mail(g_mail_conn, p_sender_email);
UTL_SMTP.rcpt(g_mail_conn, p_to);
UTL_SMTP.open_data(g_mail_conn );
UTL_SMTP.write_data( g_mail_conn, '' || CRLF);
UTL_SMTP.write_data(g_mail_conn, p_msg_body);
UTL_SMTP.close_data(g_mail_conn );
UTL_SMTP.quit(g_mail_conn);
EXCEPTION
WHEN utl_smtp.transient_error THEN
RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM);
--DBMS_OUTPUT.put_line('TransientError: Invalid Operation as service may not be available.');
WHEN utl_smtp.permanent_error THEN
RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM);
--DBMS_OUTPUT.put_line('Permanent Error: The email id entered is either invalid or recepients mail box is full.');
--p_errmessage:=SQLERRM;
WHEN others THEN
RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM);
-- DBMS_OUTPUT.put_line('Unable to send an email.');
--p_errmessage:=SQLERRM;
IF SQLERRM IS NOT NULL THEN
p_err_message1:=SQLERRM;
ELSE
p_err_message1:=NULL;
END IF;
END p_sendmail;
--The calling procedure below:
p_sendmail(p_sender_email => 'stanjore@someemailid.ca', --- Send Email to the Donor
p_from => 'PLEDGING <stanjore@someemailid.ca>',
p_to => v_store_email_address,
p_msg_subject => 'Anonymous User',
p_msg_body => 'Thank you' ||
CRLF ||
'The email confirms that we have received your pledge' ||
CRLF ||
CRLF ||
' Name: ' || v_full_name ||
CRLF ||
'Temporary ID: ' || v_azbwccp_id ||
CRLF ||
'Reference Number: ' || MTID ||
CRLF ||
' Amount: ' || to_number(campaign_desg_amt1) ||
CRLF ||
' Campaign: ' || campaign ||
CRLF ||
' Designation: ' || adbdesg_rec.adbdesg_name ||
CRLF ||
' Type: ' || atvpldg_rec.atvpldg_desc ||
CRLF ||
' Duration: ' || atvpdur_rec.atvpdur_desc ||
CRLF ||
' Frequency: ' || atvfreq_rec.atvfreq_desc ||
CRLF ||
' Start Date: ' || bill_date2 ||
CRLF ||
CRLF ||
'Your pledge is being processed.' ||
CRLF ||
'In the meantime, should you wish to amend this transaction, please contact us ' ||
CRLF ||
CRLF ||
'Thank you for your support.' ||
CRLF ||
CRLF ||
CRLF ||
CRLF ||
'*** This is an automated message system. Please do not respond to this e-mail. *** ',
p_err_message1);
Now when I compile it, I am getting bogged down with an error message called: PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared
Where is it I am going wrong? When I googled up, it talked about either the variable is not defined(which is not the case) or about privileges (which is not the case as I compiled the same procedure with fewer parameters last week in my schema). Any idea?
I am attaching a screenshot as well.
[mod-edit: image inserted into message body by bb]
[Updated on: Tue, 02 December 2014 12:03] by Moderator Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|