Насколько я могу судить, $result
будет содержать ресурс, который вы ищете.
Вы получаете ошибку, потому что курсор не определен как курсор типа.
Вы должны явно определить $result
как курсор
$result = oci_new_cursor( $dbci );
Если возвращается $result
, он будет возвращен как ресурс, и вы должны обращаться с ним так же, как с любым другим возвращенным ресурсом.
Для вашего примера ($dbci
является ресурсом соединения):
$sqlString = 'BEGIN accounts.ocigetaccounts(:accounts); END;';
$stmt = oci_parse ( $dbci, $sqlString );
//Declare cursor
$result = oci_new_cursor( $dbci );
//Bind cursor
oci_bind_by_name ( $stmt, ':accounts', $result, -1, OCI_B_CURSOR);
//Execute query
if (oci_execute ( $stmt )) {
//Execute cursor
oci_execute($result); //Or you can return the cursor.
}
Так мы обрабатываем курсоры, возвращаемые из базы данных.
Надеюсь, что это решит проблему