[ТЕМА ЗАКРЫТА]
Опции темы
11.02.2012 08:55  
john_the_ripper
Пытаюсь дернуть данные в Report Builder из доп. параметров карточки товара.

article и propid в таблице имеют тип VARCHAR2(20)
propval имеет тип VARCHAR2(4000)

при попытке отработать такой код, выдает:
ORA-01422: exact fetch returns more than requested number of rows

function CF_DOP_PARAMFormula return char is
res supermag.smcardproperties.propval%TYPE;

begin
SELECT PROPVAL into res
FROM supermag.smcardproperties
where article = '002229'
and propid = '11';
return res;
end;

Хотя через тотже SQL Developer отрабатывает такой запрос нормально
 
11.02.2012 08:58  
OlegON
Сравни то, что пихаешь в SQL Developer с тем, что показал нам. Уверен, что в одном случае функция, в другом - просто запрос, возвращающий несколько строк. Вчитайся, что тебе в ошибке пишет.
 
11.02.2012 09:33  
john_the_ripper
Запрос в SQL Developer абсолютно идентичен. Возвращает он одну единственную строку.

Почему он супермагу возвращает несколько строк, а SQL Developer'у одну(тупо значение ячейки), мне вообще непонятно, поэтому и прошу помощи :russian_ru:
 
11.02.2012 09:46  
OlegON
если не хочешь показать запрос, то выполняй в девелопере функцию, а не запрос гоняй.
 
11.02.2012 09:57  
john_the_ripper
Что значит не хочу показать запрос? Вот он - запрос в девелопере:

SQL код:
SELECT supermag.smcardproperties.PROPVAL,
  
supermag.smcardproperties.*
FROM supermag.smcardproperties
WHERE supermag
.smcardproperties.ARTICLE '002229'
AND supermag.smcardproperties.PROPID    '11' 
Добавлено через 5 минут 37 секунд
Забил следующую функцию в SQL Developer и всё нормально отработало. Мистика :)

SQL код:
FUNCTION FUNCTION1 RETURN VARCHAR2 IS
res supermag
.smcardproperties.propval%TYPE;
BEGIN
  SELECT PROPVAL into res 
  FROM supermag
.smcardproperties 
  where article 
'002229'
  
and propid '11';
  return 
res;
END
 
11.02.2012 10:05  
OlegON
Запутал окончательно.
Перейди в SQL Plus и покажи все цитированием.
 
11.02.2012 10:47  
john_the_ripper
SQL код:
SQLSELECT PROPVAL FROM supermag.smcardproperties where article '002229' and propid '11';

PROPVAL
------------------------------------------------------------------------------------------------
ИП "Пупкин"

SQL
Добавлено через 19 минут 16 секунд
SQL код:
SQL> DECLARE
  
2  res supermag.smcardproperties.propval%TYPE;
  
3  BEGIN
  4  SELECT PROPVAL into res FROM supermag
.smcardproperties where article '002229' and propid '1
1'
;
  
5  dbms_output.put_line(res);
  
6  END;
  
7  /
ИП "Пупкин"

PL/SQL procedure successfully completed.

SQL
 
11.02.2012 11:17  
OlegON
а из функции в SQL Plus?

Добавлено через 6 минут 41 секунду
Или "все заработало" это означало закрытие темы?
 
11.02.2012 11:56  
john_the_ripper
Да в том то и дело, что в SQL Plus'е нормально отрабатывает и возвращает значение, а тот же самый код в при запуске из супермага вызывает вышеуказанную ошибку. Мииистииикаааа =\
 
11.02.2012 12:12  
whitewizard
с Бизнес-анализа запускаешь?
тогда создай функцию и запускай её
 
 


Опции темы



Часовой пояс GMT +3, время: 17:15.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.