1
Я делаю очень базовую вставку в Oracle DB с предложением RETURNING INTO, чтобы получить первичный ключ. Тем не менее, я постоянно получаю нулевой доход, и я не могу понять, насколько я могу решить эту проблему. Помимо этой проблемы, строка отлично вписывается. Код ниже:PHP/ORACLE oci_bind_by_name и RETURNING INTO для получения PK
$requestParentSQL = "INSERT INTO
KRANE_REQUEST (
DATE_REQUESTED,
DATE_EMAILED,
PERSON_ID,
AUTHORISER_ID
)
VALUES (
SYSDATE,
SYSDATE,
'$theUser',
'$theAuthoriser'
)
RETURNING
KRANE_REQUEST_ID
INTO
:NEW_KRID";
$oracleConnection = oci_connect(_DATABASEUSERNAME, _DATABASEPASSWORD, _DATABASE);
$oracleStatement = oci_parse($oracleConnection, $requestParentSQL);
oci_bind_by_name($oracleStatement, ':NEW_KRID', $theNewKRID, 8);
oci_execute($oracleStatement, OCI_DEFAULT);
oci_commit($oracleConnection);
oci_free_statement($oracleStatement);
oci_close($oracleConnection);
Является ли 'NEW_KRID' int или char? По умолчанию он свяжет 'SQLT_CHAR', так как вы опустили 5-й параметр. –
Datatype is Number (12), я попытался определить SQLT_CHR и SQLT_INT, а также некоторые другие параметры, чтобы увидеть, что произойдет. Но никто из них не возвращал значение. – Sebconn
FYI Я попытался использовать oci_bind_by_name для вставки переменной даты в таблицу, которая отлично работает. – Sebconn