Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
SQL, PL/SQL, T-SQL: запросы, DML DDL операторы, пакеты, процедуры, функции, триггеры и последовательности.
  • Страница:
  • 1
  • 2

ТЕМА:

Re: Oracle: не получается создать курсор 12 года 9 мес. назад #2819

  • Jack
  • Jack аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
не совсем пойму при чем тут Java, речь идет о хранимой процедуре PL/SQL
структура таблицы наверное большой роли не играет. Может просто нельзя создавать курсоры со вложенными select-ми? хотя в документации ограничений не нашел((

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: не получается создать курсор 12 года 9 мес. назад #2820

Причина не в правах.
До версии Oracle 9i в PL/SQL был отдельный sql-парсер. Он не учитывал все новшества SQL машины. Не берет он например select (select...) from .
Поэтому в процедуре такие вещи можно использовать только с помощью динамического SQL.
declare

  TYPE RefCurType IS REF CURSOR;

  cv RefCurType;

  sql_str varchar2(2000);

  param varchar2(1) := 'X';

  rnum number;

begin

  sql_str := 'select (select 555 from sys.dual) from sys.dual where dummy = :b1 ';

  open cv for sql_str using param;

  loop

    fetch cv into rnum;

    exit when cv%notfound;

    DBMS_OUTPUT.PUT_LINE ( 'rnum= ' || rnum );     

  end loop;    

  close cv; 

end;

А можно и просто переписать запрос твоего курсора,
примерно так:
select a.t$ttyp as ttyp, sum (t$amth + t$cdam)

  from baan.ttfacr200308 a,

       baan.ttfacr200308 b

 where trim (a.t$cuno) = trim (a.cuno) 

   and a.t$docd < a.date_t

   and b.t$ttyp = a.t$ttyp

   and b.t$trec <> a.t$trec

   and t$docd < date_f

 group by a.t$ttyp

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: не получается создать курсор 12 года 9 мес. назад #2821

"жаба" - это TOAD? Значит, я не так тебя понял. Inline-select действительно появились в 9i.
Хотя где то слышал что использовалась и в 8... Но это не проверенный факт))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: не получается создать курсор 12 года 9 мес. назад #2822

  • Jack
  • Jack аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
УРА!!! Получилось! Динамический SQL помог!!!!
Огромное спасибо Pond!!!
John Smith я тоже слышал что появилась в восьмерке но использовать увы мне не удалось.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.209 секунд