Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Хочу написать нечто типа:
1 дек 10, 14:35    [9869334]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
продолжаю...
procedure p (
   p_var  in тип_таблица default null -- фактически, целочисленный массив
...
)

но оракл не хочет такое хавать, если принимать данный параметр без значения по умолчанию, то придется на клиенте многое переписывать, неужели невозможно присвоить данному параметру значение по умолчанию? Если нельзя, то помогите советом как обойти это
1 дек 10, 14:39    [9869370]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
default func_returning_empty_assoc_array
1 дек 10, 14:42    [9869398]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
Что за тип?
Процедура пакетная или где?
1 дек 10, 14:42    [9869403]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
Elic
default func_returning_empty_assoc_array

Откуда видно что а ТС именно ассоциативный массив?
1 дек 10, 14:43    [9869408]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
andrey_anonymous
Elic
default func_returning_empty_assoc_array
Откуда видно что а ТС именно ассоциативный массив?
kastolom
procedure p (
   p_var  in тип_таблица default null 
но оракл не хочет такое хавать
Т.е. коллекция, не имеющая конструктора.
1 дек 10, 15:28    [9869819]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Elic,

что-то типа
TYPE ... IS TABLE OF INTEGER INDEX BY BINARY_INTEGER;
1 дек 10, 15:40    [9869949]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
kastolom
Elic,

что-то типа
Это вопрос?
1 дек 10, 15:42    [9869965]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Elic,

не, я так понял, что это ты задал мне вопрос, вот и написал, но не суть...
все равно меня интересует как сказать ораклу, что данный параметр при вызове может отсутствовать?
1 дек 10, 15:45    [9869990]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
kastolom
все равно меня интересует как сказать ораклу, что данный параметр при вызове может отсутствовать?
9869398
1 дек 10, 15:51    [9870061]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Elic
default func_returning_empty_assoc_array

я объявил
PROCEDURE request_status_change(
      p_object_ids     IN COLLECTION_PKG.t_itbl_numbers DEFAULT FUNC_RETURNING_EMPTY_ASSOC_ARRAY
    ...
  )
падает ошибка:
PLS-00114 Identifier 'FUNC_RETURNING_EMPTY_ASSOC_ARRAY' too long
1 дек 10, 15:57    [9870118]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
kastolom,

Ты хотел, чтобы тебе разжевали и в рот положили? Самому подумать, что же могло значить FUNC_RETURNING_EMPTY_ASSOC_ARRAY, не судьба?
Или только на русском не понимаешь?
1 дек 10, 16:05    [9870201]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
bdsm_sql
Member

Откуда:
Сообщений: 948
Картинка с другого сайта.
1 дек 10, 16:14    [9870272]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Elic,

а зачем изобретать велосипед? все равно написать более универсальнее, чем написали разработчики из Oracle я не смогу, поэтому я лезу на форум и спрашиваю о реализации, вдруг существует подход, функция или еще что-нибудь для моей конкретной задачи
1 дек 10, 16:14    [9870277]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Alexander Konakov
Member

Откуда:
Сообщений: 1027
kastolom,

FUNC_RETURNING_EMPTY_ASSOC_ARRAY надо самому написать. Функция должна вернуть пустой массив.
1 дек 10, 17:30    [9870983]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
SQL Bigot
Member

Откуда:
Сообщений: 841
kastolom
продолжаю...

Рассмотри вариант с nested table, там такое прокатывает:

CREATE OR REPLACE FUNCTION one_test(pvar IN TNESTED_TABLE_TYPE DEFAULT TNESTED_TABLE_TYPE())
  RETURN NUMBER AS
BEGIN
  RETURN pvar.count;
END;
1 дек 10, 18:37    [9871422]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
SQL Bigot
Рассмотри вариант с nested table, там такое прокатывает:
 DEFAULT TNESTED_TABLE_TYPE()
Там "прокатывает" и NULL.
1 дек 10, 18:49    [9871459]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
SQL Bigot
Member

Откуда:
Сообщений: 841
Elic
Там "прокатывает" и NULL.

Значит, задача ТС решена? :)
1 дек 10, 21:31    [9871992]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18367
SQL Bigot
Elic
Там "прокатывает" и NULL.

Значит, задача ТС решена? :)

А тут что, задача была?
1 дек 10, 21:48    [9872071]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
kastolom
Member

Откуда:
Сообщений: 325
Была проблема, успешно решилась благодаря совету Elic, всем спасибо, тема закрыта
1 дек 10, 21:53    [9872102]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
SQL Bigot
Member

Откуда:
Сообщений: 841
andrey_anonymous
А тут что, задача была?

"Начни с определений"(С)
Значение слова - "задача" - содержит ответ на твой непростой вопрос.
:)
1 дек 10, 22:16    [9872213]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
SQL Bigot
andrey_anonymous
А тут что, задача была?
"Начни с определений"(С)
Значение слова - "задача" - содержит ответ на твой непростой вопрос.
:)
Попробуй оправдаться простыми и понятными словами, не неся чуши. Пока складывается впечатление лишь о прогрессирующей тупости.
2 дек 10, 08:48    [9872976]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
SQL Bigot
Member

Откуда:
Сообщений: 841
Elic
Попробуй оправдаться простыми и понятными словами, не неся чуши. Пока складывается впечатление лишь о прогрессирующей тупости.

Пока что не вижу причин оправдываться.
Если не можешь найти в гугле определение слова "задача", а потом понять смысл словосочетания "задача ТС", то напрашивается вопрос: "А судьи кто?"
2 дек 10, 09:57    [9873166]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
Elic
Member

Откуда:
Сообщений: 29990
SQL Bigot
Пока что не вижу причин оправдываться.
Как хочешь. Но это воинствующий ламеризм.
2 дек 10, 10:06    [9873214]     Ответить | Цитировать Сообщить модератору
 Re: Хочу проинициализировать переменную типа таблица в процедуре по умолчанию  [new]
SQL Bigot
Member

Откуда:
Сообщений: 841
Elic
SQL Bigot
Пока что не вижу причин оправдываться.
Как хочешь. Но это воинствующий ламеризм.

Не согласен. До вопроса 9872071 было обсуждение. Из которого можно было вынести крупицу истины.
Потом пошло членомеряние сплошное.
Причем,лично мне заранее понятно у кого окажется длиннее :)
2 дек 10, 10:22    [9873319]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить