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

ТЕМА:

Динамический запрос и курсор 12 года 4 мес. назад #3860

  • Okey
  • Okey аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Как в курсор передать запрос, сгенерированный и сохраненный в текстовой переменной?
Можно так сделать?

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

Re: Динамический запрос и курсор 12 года 4 мес. назад #3861

  • Okey
  • Okey аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Error: PLS-00103: Encountered the symbol "LOOP" when expecting one of the following: * & - + / at mod remainder rem ..

FUNCTION myFunc(VID IN VARCHAR2) RETURN TmyREC
PIPELINED AS
vREC myREC;
text1 VARCHAR2(32767);
CUR_IZM sys_refcursor;
BEGIN

text1 := ' select f1,f2,f3 from nameuser.mytable where f1 = ' || VID;

FOR CUR_IZM IN (text1) 

LOOP
vREC.a := CUR_IZM.f1;
vREC.b := CUR_IZM.f2;
vREC.c := CUR_IZM.f3;
PIPE ROW(vREC);

END LOOP;

RETURN;
end;

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

Re: Динамический запрос и курсор 12 года 4 мес. назад #3862

  • Okey
  • Okey аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
А так работает, но мне это не подходит, неправильно использовать запрос именно там, строка формируется из кучи условий
FUNCTION myFunc(VID IN VARCHAR2) RETURN TmyREC
PIPELINED AS
vREC myREC;
text1 VARCHAR2(32767);
CUR_IZM sys_refcursor;
BEGIN

FOR CUR_IZM IN (' select f1,f2,f3 from nameuser.mytable where f1 = ' || VID) 
LOOP
vREC.a := CUR_IZM.f1;
vREC.b := CUR_IZM.f2;
vREC.c := CUR_IZM.f3;
PIPE ROW(vREC);

END LOOP;

RETURN;
end;

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

Re: Динамический запрос и курсор 12 года 4 мес. назад #3863

Это в 9-ке не работает, это для какой версии оракла?

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

Re: Динамический запрос и курсор 12 года 4 мес. назад #3864

  • Okey
  • Okey аватар Автор темы
  • Не в сети
  • Новый участник
  • Новый участник
  • Спасибо получено: 0
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0

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

Re: Динамический запрос и курсор 12 года 4 мес. назад #3865

Точка лишняя Cursor CUR(p_f1 Varchar2) is select f1,f2,f3 from nameuser.mytable where f1 = p_f1;

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

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