ORA-06502: PL / SQL: ошибка числового значения или значения: слишком маленький буфер строки символов - Выполнение с использованием интерфейса OCI
1190 просмотра
1 ответ
Я полностью изумлен и не понимаю, что мне нужно сделать, чтобы исправить эту ошибку. У меня есть процедура plsql, которая принимает строку varchar2 и параметр OUT, который является числом. Можете ли вы помочь мне, поскольку я учусь и плохо знаком с plsql и php.
тип столбцов member_name - VARCHAR2 (100), а member_id - NUMBER (20).
create or replace procedure GET_MEMBER_ID (V_MEMBER_NAME IN VARCHAR2,V_MEMBER_ID OUT NUMBER ) AS
BEGIN
SELECT member_id INTO V_MEMBER_ID
FROM mn_member WHERE member_name = V_MEMBER_NAME;
END;
/
я выполняю вышеуказанную хранимую процедуру из php следующим образом
error_reporting(E_ALL);
ini_set('display_errors', 1);
$conn = oci_connect("$user","$password","$sid");
$MEMBER_ID=0;
$MEMBER_NAME='45390';
echo gettype($MEMBER_NAME), "\n";
echo gettype($MEMBER_ID), "\n";
$sql_get_member_id = "BEGIN GET_MEMBER_ID(:MEMBER_NAME,:MEMBER_ID);END;";
$stmt1 = oci_parse($conn,$sql_get_member_id);
// Bind the input parameter
oci_bind_by_name($stmt1,':MEMBER_NAME',$MEMBER_NAME);
oci_bind_by_name($stmt1,':MEMBER_ID',$MEMBER_ID);
oci_execute($stmt1);
echo "Member ID is ".$MEMBER_ID;
?>
Это вывод, который я вижу в php
Автор: Sanjay Rao Источник Размещён: 12.11.2019 09:28строка целое число Предупреждение: oci_execute () [function.oci-execute]: ORA-06502: PL / SQL: ошибка числа или значения: слишком мал символьный буфер строки ORA-06512: в строке 1 в файле rtp2 / test.php в строке 26 Member ID равен 0
Ответы (1)
1 плюс
Я не парень по PHP, но из документов :
«Вы должны указать maxlength при использовании привязки OUT, чтобы PHP выделял достаточно памяти для хранения возвращаемого значения».
Может быть, попробовать что-то вроде:
// Bind the input parameter
oci_bind_by_name($stmt1,':MEMBER_NAME',$MEMBER_NAME);
oci_bind_by_name($stmt1,':MEMBER_ID',$MEMBER_ID,20,SQLT_INT);
Не уверен насчет необходимости спецификации типа данных SQLT_INT.
Автор: DCookie Размещён: 08.12.2016 08:20Вопросы из категории :
- php Как вы отлаживаете PHP-скрипты?
- php Заставьте XAMPP / Apache обслуживать файл вне htdocs
- php Как включить файлы PHP, которые требуют абсолютного пути?
- php Скрипт входа со скрытыми кнопками
- php How can I find unused functions in a PHP project
- php Эффективное изменение размера JPEG изображения в PHP
- oracle Как выбрать n-ую строку в таблице базы данных SQL?
- oracle Лучший способ инкапсулировать сложную логику курсора Oracle PL / SQL в виде представления?
- oracle Лучший способ сделать многострочную вставку в Oracle?
- oracle В какую таблицу / представление вы запрашиваете выбор всех имен таблиц в схеме в Oracle?
- oracle Как решить ORA-011033: инициализация или завершение работы ORACLE
- oracle Как импортировать дамп оракула в другое табличное пространство
- types Как создать новый экземпляр объекта из Типа
- types В чем разница между строкой и строкой в ??C #?
- types В чем разница между старым и новым стилем классов в Python?
- types Что хорошего в дженериках, зачем их использовать?
- types Что такое типы POD в C ++?
- types Какой канонический способ проверить тип в Python?