powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Динамический массив
4 сообщений из 4, страница 1 из 1
Динамический массив
    #39833631
eliseylapt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня, возникла потребность возвращать из функции массив строк, только вот подобных функций штук 20, и все они могут возвращать разное количество строк, которое определяется в теле функции.

Сами функции в пакете. Для теста объявил тип внутри пакета:

SpecCREATE OR REPLACE PACKAGE SPB.PAC$UTILS_DB IS

TYPE R_ARRAY_SINGLE IS VARRAY(1) OF VARCHAR2(200);

Пример функции
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
-- Удаление таблицы
FUNCTION DROP_TABLE_S(P$OWNER IN VARCHAR2,            -- Наименование схемы
                     P$NAME IN VARCHAR2,
		     P$WR_LOG IN SMALLINT DEFAULT 1  -- 1-ПИШЕМ В DBMS_OUTPUT УСПЕШНОЕ СООБЩЕНИЕ, ИНАЧЕ НЕТ (ОШИБКА ПИШЕТСЯ ВСЕГДА!!!)          					 -- НАИМЕНОВАНИЕ ТАБЛИЦЫ
                     ) RETURN R_ARRAY_SINGLE IS
		       R_ARRAY R_ARRAY_SINGLE;
BEGIN
  IF TABLE_EXISTS(P$OWNER, P$NAME, 0) = 1 THEN
      R_ARRAY:=R_ARRAY_SINGLE('');
      R_ARRAY(1):='DROP TABLE ' || P$OWNER || '.' || P$NAME || ' CASCADE CONSTRAINTS'; 
    --WR_LOG('DROP_TABLE: ТАБЛИЦА '||P$OWNER||'.'||P$NAME||' УДАЛЕНА.', P$WR_LOG);
      RETURN R_ARRAY;
  END IF;

  --WR_LOG('DROP_TABLE: Таблица '||p$owner||'.'||p$name||' НЕ найдена.', p$wr_log);
END DROP_TABLE_S

;

Конкретно в этой функции все работает, она всегда возвращает массив с одним элементом. Это всего лишь пример.

Вопрос в том, можно ли внутри функции расширять размерность массива? С EXTEND у меня ничего не получилось.
Есть возможность конечно расписать типы для каждой функции, но это костыль получается, или нет?
Буду благодарен за любую помощь/совет.

С Уважением.
...
Рейтинг: 0 / 0
Динамический массив
    #39833636
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eliseylaptС EXTEND у меня ничего не получилось.

"Машина не заводится. Пепельницу вытряхивал, по колесам пинал."

Что не получилось?
...
Рейтинг: 0 / 0
Динамический массив
    #39833637
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spec
Код: plsql
1.
VARRAY(1)

eliseylaptС EXTEND у меня ничего не получилось.Ты дебил.
А код вообще говнистей некуда.
eliseylaptС Уважением.Смотри, не перекланяйся.
...
Рейтинг: 0 / 0
Динамический массив
    #39833638
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Динамический массив
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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