11.02.2012 08:55
Пытаюсь дернуть данные в 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
Сравни то, что пихаешь в SQL Developer с тем, что показал нам. Уверен, что в одном случае функция, в другом - просто запрос, возвращающий несколько строк. Вчитайся, что тебе в ошибке пишет.
11.02.2012 09:33
Запрос в SQL Developer абсолютно идентичен. Возвращает он одну единственную строку.

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

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
Запутал окончательно.
Перейди в SQL Plus и покажи все цитированием.
11.02.2012 10:47
SQL код:
SQL> SELECT 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
а из функции в SQL Plus?

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

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.