I know that this subject has been covered several times in the message boards, however I still seem to be missing a point that will allow my code to access the stored procedure.
The trouble is that I am getting a Warning "OCIStmtExecute: OCI_NO_DATA" when I try to write to the DB using the stored procedure.
Thanks in advance for your help!
Here is the code
#set variables for stored proceedure
$p_in_cust_name = $FNAME.$CNAME;
$p_in_cust_acct_no =$userInfo["acctNum"];
$p_in_cust_div = $userInfo["div"];
$p_in_create_by ="web";
$p_in_trouble_datetime =$ddate;
$SQL_PROCEEDURE ="begin TTC_DETAIL_INSERT (š_OUT_RET_CODE, š_OUT_TICKET_NUM, š_IN_CREATE_BY,"
."\nš_IN_TROUBLE_DATETIME, null, š_IN_CUST_NAME, š_IN_CUST_ACCT_NO,"
."\nš_IN_CUST_DIV, null, null, null, null, š_IN_FROM_NUMBER, š_IN_FROM_COUNTRY,"
."\nš_IN_FROM_PHONETYPE, š_IN_FROM_REGION, š_IN_TO_NUMBER, š_IN_TO_COUNTRY, null,"
."\n null, null, null, š_IN_PROBLEM_DESCRIPTION, null, š_IN_ACCESS_METH);"
."\nend;";
$debugMsg .= $SQL_PROCEEDURE."<br>";
$SQL_STATEMENT = OCIParse ($connID, $SQL_PROCEEDURE);
#the return values from the stored proceedure
ocibindbyname($SQL_STATEMENT, "P_OUT_RET_CODE",&$P_OUT_RET_CODE, -1);
ocibindbyname($SQL_STATEMENT, "P_OUT_TICKET_NUM",&$P_OUT_TICKET_NUM,-1);
#the values inserted into the db
ocibindbyname($SQL_STATEMENT, "P_IN_CREATE_BY",&$p_in_create_by,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_TROUBLE_DATETIME",&$p_in_trouble_datetime,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_CUST_NAME",&$CNAME,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_CUST_ACCT_NO",&$p_in_cust_acct_no,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_CUST_DIV",&$p_in_cust_div,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_FROM_NUMBER",&$p_in_from_number,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_FROM_COUNTRY",&$p_in_from_country,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_FROM_PHONETYPE",&$p_in_from_phonetype,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_FROM_REGION",&$p_in_from_state,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_TO_NUMBER",&$p_in_to_number,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_TO_COUNTRY",&$p_in_to_country,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_PROBLEM_DESCRIPTION",&$p_in_problem_description,-1);
ocibindbyname($SQL_STATEMENT, "P_IN_ACCESS_METH",&$p_in_access_meth,-1);
OCIFreeStatement($SQL_STATEMENT);
OCILogoff($connID);
#close DB connection
closeConnection($connID);
#echo "P ret code".$P_OUT_RET_CODE."<br>";
#echo "p ticket number".$P_OUT_RET_CODE;
if (($P_OUT_RET_CODE == -1)||(isset($P_OUT_RET_CODE)==true)) {
$msg = "The proceedure did not work!";
$msg .= urlencode($P_OUT_RET_CODE);
header("Location:error.php?SID=$SID&msg=$msg");
exit;
}
$msg = "A trouble ticket has been generated for you.<br>"
."\nOur technicians will look into the problem.<br>"
."\nYour trouble ticket number is:".$P_OUT_TICKET_NUM;
header("Location:confirm.php?SID=$SID&msg=".urlencode($msg));