Получить поля с индексом вместо имени столбца в Oracle PL / SQL - PullRequest
0 голосов
/ 01 февраля 2020

Кто-то знает, как получить доступ к полям курсора pl sql oracle через индекс.

Можно ли получить поля таблицы через индекс вместо имени столбца?

Заранее спасибо.

declare
  cursor c_user is 
    select * 
      from users
     where age > 20;
begin
    for u in c_user loop
        dbms_output.put_line(u.lastname||' '||u.firstname);
    end loop; 
end;

Пример

declare
  cursor c_user is 
    select * 
      from users
     where age > 20;
begin
    for u in c_user loop
        dbms_output.put_line(u.1||' '||u.2);
    end loop; 
end;

Ответы [ 2 ]

2 голосов
/ 01 февраля 2020

Если вы спрашиваете, можете ли вы ссылаться на поля в записи PL / SQL по их положению, ответ - нет. Вы можете ссылаться на них только по имени.

Кстати, в мире баз данных index обычно относится к объекту базы данных, в котором хранятся значения ключей из таблицы вместе с их физическим местоположением. организован для быстрого поиска, и таблица , о, неважно, поэтому "получить поля таблицы через индекс" меня немного смутило, потому что я не думаю, что вы означает оптимизированный поиск хранимых данных. Извиняюсь, если я ошибаюсь.

1 голос
/ 01 февраля 2020

Попробуйте что-нибудь вроде этого:

declare
cursor Inx_Cur(P_Indx Number) is select 
decode(P_Indx,1,ACCOUNTNO,2,ACCOUNTNAME,3,ACCOUNTTYPE) My_field
from accounts;
begin
for Rec in Inx_Cur(3) -- pass the required index as 
parameter
loop
 dbms_output.put_line('My_field : '||Rec.My_field);
end loop;
end;
...