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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как инициализировать RECORD 
:(
    Опции темы
Nuzur
Дата 5.12.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

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




Что то в духе:
Код

DECLARE
  TYPE my_type_rec IS RECORD
  (
     in_num NUMBER(10),
     in_chr   VARCHAR2(10)
  );

  rec my_type_rec;

BEGIN
  rec := my_type_rec(1, 'aa');
END;


Тоесть собственно вопрос, как инициализировать переменную типа RECORD с несколькими полями.

ЗЫ Я создал здесь вторую тему вроде как вопросы глупые, но в правилах "Один вопрос, одна тема", Если уважаемые модераторы считают что я сделал что то не так то пожалуйста подправьте, в следующий раз обязательно учту при создании темы.
Заранее спасибо.


--------------------
Never again...
PM MAIL   Вверх
DimW
Дата 5.12.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Код

DECLARE
  TYPE my_type_rec IS RECORD
  (
     in_num NUMBER(10),
     in_chr   VARCHAR2(10)
  );

  rec my_type_rec;

BEGIN
  rec.in_num := 1;
  rec.in_chr := '1';
END;

PM MAIL ICQ   Вверх
Sqlninja
Дата 5.12.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

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



Пихай в коллекцию через BULK COLLECT INTO, тогда инициализировать не надо будет.


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
DimW
Дата 5.12.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(Sqlninja @  5.12.2007,  10:59 Найти цитируемый пост)
Пихай в коллекцию через BULK COLLECT INTO


Sqlninja, у него рекорд, а не коллекция.
PM MAIL ICQ   Вверх
Sqlninja
Дата 5.12.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

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



Цитата(DimW @  5.12.2007,  11:08 Найти цитируемый пост)
Sqlninja, у него рекорд, а не коллекция

тогда просто select into...да можно и по твоему.  скучно, господа, скучно...



--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
Nuzur
Дата 5.12.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

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



Sqlninja, а если выбирать не откуда? Тоесть я хочу инитить значениями каих нигде нет кроме как вбить руцями белыми?


DimW, я знаю что так можно но такое решение выглядит не красиво когда много полей, здесь оно конечно еще ничего, а вот если полей 10 то оно как то не так будет выглядеть :(
Но всеравно вам однозначно + спасибо за помощь

Это сообщение отредактировал(а) Nuzur - 5.12.2007, 11:53


--------------------
Never again...
PM MAIL   Вверх
DimW
Дата 5.12.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(Nuzur @  5.12.2007,  11:52 Найти цитируемый пост)
а вот если полей 10 то оно как то не так будет выглядеть :(

ну если хочется селестом то бери значения из дуала:
Код

select 1, '1' into rec from dual;

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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

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



DimW, а можно поподробнее про dual?


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


Leprechaun Software Developer
****


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

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



Цитата(Nuzur @  5.12.2007,  12:18 Найти цитируемый пост)
а можно поподробнее про dual?

А что пронего писать, просто специальная таблица доступная для чтения любому пользователю, содержит одну колонку и одну запись. Нужна как раз для таких случаев, чтобы не изобретать спец синтаксис для селектов которые должны вернуть одну строку.


--------------------
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   Вверх
DimW
Дата 5.12.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



dual это абстрактное понятие таблицы(области) в оракле, гарантированно селект из него возвращает одну строку. поля и их значения которые тебе нужны ты определяешь сам.
Код

select 1, '2', sysdate, имя_пакета.имя_функции from dual


а по подробнее лучше в документации почитать.
PM MAIL ICQ   Вверх
Nuzur
Дата 5.12.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

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



LSD, Спасибо, просто не знал :(

DimW, спасибо. Почитаю, просто легче когда знаеш про что нужно копать а то глаза разбегаются. 


--------------------
Never again...
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.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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