Проблема с выборкой внутри ХП
Добавлено: 23 ноя 2004, 07:54
Есть сервер IB7.1, Есть IBExpert 2004.08.05 Необходимо написать процедуру возвращающую некоторый набор записей отобранных по какому-то критерию... выглядит примерно так:
CREATE PROCEDURE DICTIONARY_NOMENKLATURA(BARCODE_IN CHAR(13))
RETURNS (ID INTEGER, BARCODE CHAR(13), NAME CHAR(50))
AS
DECLARE VARIABLE BARCODE_VR CHAR(14);
BEGIN
BARCODE_VR = RTRIM(LTRIM(BARCODE_IN)) || '%';
FOR SELECT ID, BARCODE, NAMEFROM NOMENKLATURA WHERE (UPPER(BARCODE) LIKE UPPER(:BARCODE_VR)) INTO :ID, :BARCODE, :NAME DO
SUSPEND;
END
А теперь самое приятное - не работает
заменяем UPPER(:BARCODE_VR) на непосредственное значение в теле процедуры, например на '460%' и все как надо... Вопрос - Почему он не хочет правильно работать с параметрами в переменных...
CREATE PROCEDURE DICTIONARY_NOMENKLATURA(BARCODE_IN CHAR(13))
RETURNS (ID INTEGER, BARCODE CHAR(13), NAME CHAR(50))
AS
DECLARE VARIABLE BARCODE_VR CHAR(14);
BEGIN
BARCODE_VR = RTRIM(LTRIM(BARCODE_IN)) || '%';
FOR SELECT ID, BARCODE, NAMEFROM NOMENKLATURA WHERE (UPPER(BARCODE) LIKE UPPER(:BARCODE_VR)) INTO :ID, :BARCODE, :NAME DO
SUSPEND;
END
А теперь самое приятное - не работает
