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, время: 19:18.

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