powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обращение к полю курсора
15 сообщений из 15, страница 1 из 1
Обращение к полю курсора
    #37199650
gubkabob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть курсор. Нужно обратиться к полю kol. Пишу так CURSORNAME.kol . Но. Название поля содержится в строковой переменной str_pole. Т.е. эта строковая переменная содержит kol. И нужно обратиться как-то через нее, типа CURSORNAME.str_pole ..... Т.е. не использую прямо название поля, а передавая его в переменную... Вот как?
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199691
comphead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199730
gubkabob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
comphead,
не пойму, в чем мне тут помощь...
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199762
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gubkabobВот как?Никак.
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199763
брадобрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gubkabob Т.е. не использую прямо название поля, а передавая его в переменную... Вот как?
почти никак, но через dynamic можно
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199818
gubkabob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, мб сорать его полностью в строковую переменную... ? а потом как-то к нему обратиться?
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199910
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
set serveroutput on
declare 
   c sys_refcursor;
   val number;
begin
   open c for select  1  a, 'xxx' b from dual;
   select extractvalue(xmltype(c), '/ROWSET/ROW/A') into val
      from dual;
   dbms_output.put_line('val='||val);
end;
/

anonymous block completed
val= 1 

--select extract(xmltype(cursor(select 1 a, 'xxx' b from dual)), '/ROWSET/ROW/A') from dual;

...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37199927
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-
Код: plaintext
   c sys_refcursor;
"Есть курсор" vs "Есть курсорная переменная" ?
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #37200164
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gubkabobПишу так CURSORNAME.kolпрошу прощения, но в каком именно контексте используется это выражение?

(тем самым я какбы хочу сказать, что обычно к колонкам курсора никто не обращается напрямую)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Обращение к полю курсора
    #39334172
Masimo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
set serveroutput on
declare 
   c sys_refcursor;
   val number;
begin
   open c for select 1 a, 'xxx' b from dual;
   select extractvalue(xmltype(c), '/ROWSET/ROW/A') into val
      from dual;
   dbms_output.put_line('val='||val);
end;
/

anonymous block completed
val=1

--select extract(xmltype(cursor(select 1 a, 'xxx' b from dual)), '/ROWSET/ROW/A') from dual;



Тоже возникла похожая задача. Есть курсор или цикл, в теле которого нужно вытянуть значение колонки.
Проблема в том, что имена колонок курсора вытягиваю динамически, то есть имя колонки это текстовая переменная.
Каким образом обратиться к курсору зная имя колонки?

По выше приведенному примеру не могу вытянуть значение колонки b:
select extractvalue(xmltype(c), '/ROWSET/ROW/B') into val from dual;
Ошибка: "PL/SQL: numeric or value error: character to number conversion error".
Получается через extractvalue можно получить только Number значения?
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #39334186
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasimoПо выше приведенному примеру не могу вытянуть значение колонки b:
select extractvalue(xmltype(c), '/ROWSET/ROW/B') into val from dual;
Ошибка: "PL/SQL: numeric or value error: character to number conversion error".
Получается через extractvalue можно получить только Number значения?Чудак, какой тип у val?
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #39334191
Masimo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicMasimoПо выше приведенному примеру не могу вытянуть значение колонки b:
select extractvalue(xmltype(c), '/ROWSET/ROW/B') into val from dual;
Ошибка: "PL/SQL: numeric or value error: character to number conversion error".
Получается через extractvalue можно получить только Number значения?Чудак, какой тип у val?

Сорри, тупанул жестко.
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #39334239
Masimo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Masimo,

Можно ли использовать такую конструкцию:

open c for select 1 a, 'xxx' b from dual;
select extractvalue(xmltype(c), '/ROWSET/ROW/A') into val
from dual;

если в курсоре более одной записи? Интересует возможность пройтись по строкам курсора и выполнить extractvalue по нужной колонке. Я так понял "EXTRACTVALUE returns value of only one node".
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #39334348
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasimoЯ так понял "EXTRACTVALUE returns value of only one node".RTFM/STFF xmltable
...
Рейтинг: 0 / 0
Обращение к полю курсора
    #39334399
Masimo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicMasimoЯ так понял "EXTRACTVALUE returns value of only one node".RTFM/STFF xmltable

Спс, почитал Faq. Понятно что EXTRACTVALUE только для одной строки.
Уточню, что моя задача с xml вообще не связана, нашел этот подход для динамического обращения к колонкам в цикле.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обращение к полю курсора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]