powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ассоциативный массив - задание индекса
9 сообщений из 9, страница 1 из 1
ассоциативный массив - задание индекса
    #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
ассоциативный массив - задание индекса
    #39534828
двоеточка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndIvкак победить?почитать документацию по используемому языку.
...
Рейтинг: 0 / 0
ассоциативный массив - задание индекса
    #39534831
AndIv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
двоеточкаAndIvкак победить?почитать документацию по используемому языку.
достойный ответ - какую именно часть документации?
...
Рейтинг: 0 / 0
ассоциативный массив - задание индекса
    #39534877
Да ну
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndIv,

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

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

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


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

Database PL/SQL Language Reference

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



p.s. Тебе подсказали, но ты не понял
двоеточка ...
...
Рейтинг: 0 / 0
ассоциативный массив - задание индекса
    #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
ассоциативный массив - задание индекса
    #39534916
AndIv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin
Код: plsql
1.
cOperAttrs(pkgString.GetWord(1, s, '=')) := pkgString.GetWord(2, s, '=');


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

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


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