Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Need help with OCIDescribeAny()
Hi,
I've been having problems gettings OCIDescribeAny to work. I got my code from Visual C++ to connect successfully to the Oracle database 8.0. I want to check and call a stored procedure. After I login, I use the OCIDescribeAny with the name of stored procedure passed as 1 of the arguements, but it always return an error stating that the stored procedure object does not exist. The stored procedure is verifed and is part of a package. I tried passing both the sp_name and package_name.sp_name, but the same errors comes back. I even tried using the OCI_DescribeAny on a table_name, but the same error returns. Any help is greatly appeciated.
Thanks,
Rage
OCIEnv *p_env; OCIError *p_err; OCISvcCtx *p_svc; OCIStmt *p_sql; OCIBind *p_bnd; OCIDescribe* p_desc;
int COraOCI::test()
{
int rc = 0;
int v_val[4] = {1, 91, 57, 12};
char* v_usr = "phureporter"; char* v_pwd = "phureporter"; char* v_tns = "testphu";
char* v_sql = "BEGIN DCL_VALIDATION_PKG.GET_ENROLLEE_INFO(:x, ); END;"; ub4 v_val_cnt = 4;
rc = OCIInitialize((ub4) OCI_OBJECT, (dvoid *)0,ub4 objp_len = strlen("DCL_VALIDATION_PKG.GET_VEHICLE_INFO");
(dvoid * (*)(dvoid *, size_t)) 0,
(dvoid * (*)(dvoid *, dvoid *, size_t))0,
(void (*)(dvoid *, dvoid *)) 0 );
error(rc); rc = OCIEnvInit( (OCIEnv **) &p_env, OCI_DEFAULT, (size_t) 0, (dvoid **) 0 ); error(rc); rc = OCIHandleAlloc( (dvoid *) p_env, (dvoid **) &p_err, OCI_HTYPE_ERROR,
(size_t) 0, (dvoid **) 0);
error(rc); rc = OCIHandleAlloc( (dvoid *) p_env, (dvoid **) &p_svc, OCI_HTYPE_SVCCTX,
(size_t) 0, (dvoid **) 0);
error(rc); rc = OCIHandleAlloc( (dvoid *) p_env, (dvoid **) &p_sql, OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0); error(rc); rc = OCIHandleAlloc( (dvoid *) p_env, (dvoid **) &p_desc, OCI_HTYPE_DESCRIBE, (size_t) 0, (dvoid **) 0); rc = OCILogon(p_env, p_err, &p_svc, (OraText *) v_usr, strlen(v_usr),
(OraText *) v_pwd, strlen(v_pwd), (OraText *) v_tns,
strlen(v_tns)); error(rc); text objptr[] = "DCL_VALIDATION_PKG.GET_VEHICLE_INFO";
rc = OCIDescribeAny(p_svc, p_err, objptr, objp_len, OCI_OTYPE_NAME, OCI_DEFAULT, OCI_PTYPE_PROC, p_desc);
error(rc); // The error always returns a -1 for rc to pass to the error function
} Received on Wed Dec 01 2004 - 14:20:42 CST