Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> НЕ DML инструкции в процедурах и функциях, поделитесь опытом в написании процедур 
:(
    Опции темы
LSD
Дата 14.9.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(chief39 @  14.9.2006,  16:24 Найти цитируемый пост)
Тэм нэ мэнэе..

Ты сегодня в ударе smile зачем тебе ассоциативный массив понадобился?

Если тебе надо создать ассоциативный массив, то делай это так:
Код
declare
  type MYLIST is table of varchar(20) index by binary_integer;
  MODULES MYLIST;
  USERS MYLIST;
begin
  MODULES(1) := 'prebilling';
  MODULES(55) := 'huilling';
end;
/

Если просто вложеную таблицу:
Код
declare
  type MYLIST is table of varchar(20);
  MODULES MYLIST;
  USERS MYLIST;
begin
  MODULES := MYLIST('prebilling','huilling');
end;
/



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 14.9.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Цитата(LSD @  14.9.2006,  17:08 Найти цитируемый пост)

Если тебе надо создать ассоциативный массив, то делай это так:

Так и делаю.
Но при переборе от 1 до COUNT на пропущенных элементах ругается smile

Цитата(LSD @  14.9.2006,  17:08 Найти цитируемый пост)

Если просто вложеную таблицу:

Дык я ведь такой же кусок кода привёл вроде.... (хотя в оракле я уже ни в чём не уверен smile )
И он валится как я написал выше  smile 



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 14.9.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(chief39 @  14.9.2006,  18:52 Найти цитируемый пост)
Дык я ведь такой же кусок кода привёл вроде....

Нет не такой же, у тебя тип объявлен как ассоциативный массив, а инициализируешь ты его как простую вложенную таблицу.

Цитата(chief39 @  14.9.2006,  18:52 Найти цитируемый пост)
Но при переборе от 1 до COUNT на пропущенных элементах ругается

Завтра гляну (домой пора: сегодня пиво и блюз smile ).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 15.9.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Курение мануалов дало следующий результат smile 
Итерацию по ассоциативным массивам надо делать так:
Код
create or replace package NTABLE_TYPE is

  type HASHTABLE_TYPE is table of varchar(20) index by binary_integer;

  procedure ITERATE;

end NTABLE_TYPE;
/

create or replace package body NTABLE_TYPE is

  procedure ITERATE is
    HASHTABLE HASHTABLE_TYPE;
    I         binary_integer;
  begin
    DBMS_OUTPUT.ENABLE;
    DBMS_OUTPUT.PUT_LINE('Zajigaem!');
  
    HASHTABLE(1) := 'one';
    HASHTABLE(2) := 'two';
    HASHTABLE(5) := 'five';
  
    I := HASHTABLE.first;
    loop
      exit when I is null;
      DBMS_OUTPUT.PUT_LINE(TO_CHAR(I) || ' = ' || HASHTABLE(I));
      I := HASHTABLE.next(I);
    end loop;
  end;

end NTABLE_TYPE;
/



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 15.9.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Цитата(LSD @  15.9.2006,  11:42 Найти цитируемый пост)
Курение мануалов дало следующий результат smile 
Итерацию по ассоциативным массивам надо делать так:

Спасиб smile
Переделаю, как вернусь из Карпат smile))
С меня оба пива smile))


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
chief39
Дата 15.9.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Всё. Сделал как таблицу smile
Ну ййяво нафик
Теперь душа чиста.
Спасибки smile



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 15.9.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(chief39 @  15.9.2006,  15:30 Найти цитируемый пост)
Переделаю, как вернусь из Карпат ))

Афигеть, он еще в горах катется smile  Учи матчасть! smile

Пожалуйста smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 19.9.2006, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: нет
Всего: 77



Цитата(LSD @  15.9.2006,  23:28 Найти цитируемый пост)
Афигеть, он еще в горах катется smile  Учи матчасть! smile

Я не катаюсь, я пьянствую. Во флейме написал.
Вот тут



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.