Проблема с курсором PHP Oracle ORA-01000: превышено максимальное количество открытых курсоровPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проблема с курсором PHP Oracle ORA-01000: превышено максимальное количество открытых курсоров

Сообщение Anonymous »

Итак, у меня есть функция PHP, которая передает некоторые переменные в вызов хранимой процедуры Oracle. вы можете выбрать более одного варианта на экране для отправки, например, вы можете выбрать вариант A, B и C и нажать «Отправить», используя цикл foreach для каждого параметра и передать данные в вызов сохраненной процедуры. теперь вот та часть, которая меня смущает. у меня ровно 500 вариантов, поэтому, если я выберу 300 или более и отправлю оракул, выдаст мне ORA-01000: превышено максимальное количество открытых курсоров (я знаю, что мой лимит курсоров оракула в этом конкретном случае составляет 300). я использовал курсор в процедуре, но думал, что неявные курсоры закрываются сами по себе. поэтому даже удаление курсора из процедуры все равно выдает ошибку.
это блок кода PHP, который вызывает пакет

Код: Выделить всё

foreach($data['option'] as $val)
{
$query = "BEGIN FIRST_PKG.Add_CUST_OPTION'$USER_ID','1',$val,sysdate,'$CUST_ID','$STORE_id'); END;";

$this->db->query($query);
if($this->db->execute()) {

} else {
echo  "insert fail";
}
}
Это пакет Oracle

Код: Выделить всё

PROCEDURE Add_CUST_OPTION(
V_USER_ID   IN BUSTAR.USERS.USER_ID%TYPE,
V_STATUS_ID           IN BUSTAR.USERS.STATUS_ID%TYPE,
V_OPTION_ID        IN BUSTAR.USERS.OPTION_ID%TYPE,
V_CDATE        IN BUSTAR.USERS.CDATE_ID%TYPE,
V_CUSTO_ID          BUSTAR.USERS.CUSTOMER_ID%TYPE,
)
IS
BEGIN
UPDATE BUSTAR.USERS
SET
OPTION_ID= V_OPTION_ID,
STATUS_ID= V_STATUS_ID,
CDATE_ID= V_CDATE,
UPDATED_BY = V_USER_ID,
CUSTOMER_ID= CUSTOMER_ID
WHERE USER_ID= V_USER_ID   ;

END Add_CUST_OPTION;
Я мало что знаю о курсорах, поэтому предполагаю, что здесь что-то упущено?
Любая помощь приветствуется !!

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-exceeded
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»