Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Problem with DBMS_ALERT Packing in version 7.3.2.1 on SCO UNIX
Hi! I have a problem with using DBMS_ALERT Package in version 7.3.2.1 on Sco Unix. My PL/SQL application works on version 7.2.2.3 properly. I rebuild my the binaries of my application on 7.3.2.1. It can still run on 7.2.2.3 but not on 7.3.2.1. I got the following error:
ORA-01008: not all variables bound
I pinpoint the error and it found out to be functon call "DBMS_ALERT.WAITANY" and "DBMS_ALERT.WAITONE". So, I wrote a small proc code just to test this package in version 7.3.2.1 attached in the
following. I built it in version 7.3.2.1. The binary can run on version 7.2.2.3 but still not on version 7.3.2.1 and got the the error, ORA-01008.
I'm still waiting for the solution from Tech support in ORACLE. If anybody has any clue about what is happening and any suggestion, I'll appreciate it very much.
Thanks.
C.J.
Here is the proc code I used for testing.
XXXXXXX BEGINNING of PROC FILE (test.pc )xxxxxxxxxxxxxx
#include <stdio.h>
#include <string.h>
char username[50] = "sys/manager_at_sid1"; char connname[20] = "sid1";
#include <sqlca.h>
/* Declare error handling function. */
void sql_error();
main()
{
int o_status=-2;
char o_message2[256];
char o_message[256];
short message_ind;
short message2_ind;
/* Register sql_error() as the error handler. */
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");
EXEC SQL CONNECT :username AT :connname;
printf("\nConnected to ORACLE as user: %s\n", username);
printf("\nAbout to do remove \n");
EXEC SQL AT :connname EXECUTE BEGIN DBMS_ALERT.REMOVE('acs_email_alert'); END; END-EXEC; EXEC SQL AT :connname EXECUTE BEGIN DBMS_ALERT.REGISTER('acs_email_alert'); END; END-EXEC;
printf("before waitone\n");
EXEC SQL AT :connname EXECUTE
BEGIN
DBMS_ALERT.WAITANY(:o_message2:message2_ind,
:o_message:message_ind,:o_status,5);
END;
END-EXEC;
printf("After waitone\n");
printf("status=%d\n",o_status);
exit(0);
}
void
sql_error(msg)
char *msg;
{
char err_msg[128];
size_t buf_len, msg_len;
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%s\n", msg);
buf_len = sizeof (err_msg);
sqlglm(err_msg, &buf_len, &msg_len);
printf("%.*s\n", msg_len, err_msg);
exit(1);
}
XXXXXXX END of PROC FILE (test.pc )xxxxxxxxxxxxxx Received on Fri Jul 11 1997 - 00:00:00 CDT
![]() |
![]() |