Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ассоциативный массив - задание индекса / 9 сообщений из 9, страница 1 из 1
11.10.2017, 16:06
    #39534812
AndIv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
доброго времени суток
прошу не пинать за нубский вопрос, но что-то не улавливаю...

есть массив
Код: plsql
1.
2.
3.
type TOPERATTRS is TABLE of VARCHAR2(4000) not null INDEX BY VARCHAR2(30);
  
  cOperAttrs TOPERATTRS;


при попытке его заполнения
Код: plsql
1.
cOperAttrs(pkgString.GetWord(1, s, '=')) = pkgString.GetWord(2, s, '=');


индексом становится не значение функции из пакета, а сама строка pkgString.GetWord(1, s, '=')

как победить?
...
Рейтинг: 0 / 0
11.10.2017, 16:26
    #39534828
двоеточка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
AndIvкак победить?почитать документацию по используемому языку.
...
Рейтинг: 0 / 0
11.10.2017, 16:28
    #39534831
AndIv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
двоеточкаAndIvкак победить?почитать документацию по используемому языку.
достойный ответ - какую именно часть документации?
...
Рейтинг: 0 / 0
11.10.2017, 17:17
    #39534877
Да ну
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
AndIv,

Очевидно, что тот инструмент, которым вы пользуетесь для указания выражения в скобках, подставляет туда это выражение как строку.
...
Рейтинг: 0 / 0
11.10.2017, 17:24
    #39534882
AndIv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
Да нуAndIv,

Очевидно, что тот инструмент, которым вы пользуетесь для указания выражения в скобках, подставляет туда это выражение как строку.

Код: plsql
1.
pkgString.GetWord(1, s, '=')


вот эта строчка (функция) возвращает некое строковое значение. но не воспринимается
...
Рейтинг: 0 / 0
11.10.2017, 17:25
    #39534886
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
AndIvдвоеточкапропущено...
почитать документацию по используемому языку.
достойный ответ - какую именно часть документации?

Database PL/SQL Language Reference

Код: plsql
1.
cOperAttrs(pkgString.GetWord(1, s, '=')) := pkgString.GetWord(2, s, '=');



p.s. Тебе подсказали, но ты не понял
двоеточка ...
...
Рейтинг: 0 / 0
11.10.2017, 17:39
    #39534896
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
AndIv,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare
 type TOPERATTRS is TABLE of VARCHAR2(4000) not null INDEX BY VARCHAR2(30);
 cOperAttrs TOPERATTRS;
 s varchar2(100);
 function GetWord(p_pos int,p_s varchar2,p_r varchar2) return varchar2
 is
 begin
   return to_char(to_date(substr(p_s, instr(p_s,p_r,1,p_pos)+1, instr(p_s,p_r,1,p_pos+1)-instr(p_s,p_r,1,p_pos)-1),'yyyy'),'year');
 end;
begin
 s:='=1=2=3=';
 cOperAttrs(GetWord(1, s, '=')) := s;
 dbms_output.put_line(GetWord(2, s, '=')||' ->'||cOperAttrs(GetWord(1, s, '=')) );
end;
/
SQL> /
two ->=1=2=3=

PL/SQL procedure successfully completed.




.....
stax
...
Рейтинг: 0 / 0
11.10.2017, 17:49
    #39534916
AndIv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ассоциативный массив - задание индекса
Vadim Lejnin
Код: plsql
1.
cOperAttrs(pkgString.GetWord(1, s, '=')) := pkgString.GetWord(2, s, '=');


тут понятно, простая описка, иначе была бы ошибка :)

спасибо всем, косяк в отображении PL/SQL Dev
на самом деле все красиво :)
...
Рейтинг: 0 / 0
11.10.2017, 18:42
    #39534965
ассоциативный массив - задание индекса
Stax, ты, наверное, хороший муж.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ассоциативный массив - задание индекса / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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