@sflyer

Php+Oracle increment by неверное имя/номер переменной, как написать верно?

$compiled = oci_parse($conn, "alter sequence SQ_TEST increment by :id");
oci_bind_by_name($compiled, ":id", $VAL);
$result =oci_execute($compiled, OCI_DEFAULT);

Есть такой код, который уменьшает значение sequence. Запрос работает без PHP. Проблема в том, что (как я понял) ему не нравится переменная :id. Значение $VAL не пустое.
Как правильно передать значение?
Ошибки:
Warning: oci_bind_by_name(): ORA-01036: неверное имя/номер переменной in /var/www/html/test/new_year.php on line 11
Warning: oci_execute(): ORA-01722: неверное число in /var/www/html/test/new_year.php on line 12
  • Вопрос задан
  • 658 просмотров
Решения вопроса 1
@Dronablo
Oracle performance geek
Согласно доке, он туда подсовывает автоматический тип SQLT_CHR, который будет автоматически приводиться к нужному типу в случае SELECT. Т.к. у вас тут DDL, я думаю что нужно явно указать type=SQLT_INT.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы