Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Obect-oriented features / 6 сообщений из 6, страница 1 из 1
05.06.2003, 14:02:34
    #32177376
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
Добрый день.

Знакомлюсь с Oracle, а конкретно с использованием объектов в нем.

Пробую делать так:

Код: plaintext
1.
2.
3.
4.
CREATE TYPE worker AS OBJECT (
  work_id NUMBER
  work_name VARCHAR
  )




ОК. Теперь так -

Код: plaintext
1.
2.
3.
CREATE TABLE WORKERS (
       wk   worker
  );



Получаю сообщение о том, что неверный тип данных. В чем дело ?

Заранее благодарю.
...
Рейтинг: 0 / 0
05.06.2003, 14:08:26
    #32177388
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
Код: plaintext
1.
2.
3.
4.
CREATE TYPE worker AS OBJECT (
  work_id NUMBER
  work_name VARCHAR
  )


Ты хочешь сказать что эта команда у тебя без ошибки выполнилась?
...
Рейтинг: 0 / 0
05.06.2003, 14:11:11
    #32177393
Осирис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
Да. А в чем проблема ? Я чего то не понимаю ?

Выполнилась и более того запрос:

Код: plaintext
SELECT * FROM DBA_TYPES ORDER BY TYPE_NAME


возвращает набор данных в котором присутствует и мой тип.
...
Рейтинг: 0 / 0
05.06.2003, 14:35:24
    #32177427
raven13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
Понимаешь просто ты пропустил запятую, да и определения типов надо знать. Тип сформировался, но он инвалидный.

Это и спрашивал у тебя softbuilder@inbox.ru

Пробуй так

TYPE WORKER AS OBJECT (
work_id NUMBER,
work_name VARCHAR(30)
)
...
Рейтинг: 0 / 0
05.06.2003, 14:46:52
    #32177444
Divan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
2 ошибки.
1-я не указал запятую.
2-я в типе Varchar укажи размер

вот так вот.

CREATE TYPE worker AS OBJECT (
work_id NUMBER,
work_name VARCHAR(50)
);

CREATE TABLE WORKERS (
wk worker
);

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

update TABLE WORKERS t set
t.worker=worker(NULL,NULL) where t.worker IS NULL;

и теперь работай
...
Рейтинг: 0 / 0
05.06.2003, 14:51:08
    #32177450
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Obect-oriented features
to Divan

Объектный тип нужно проинициализировать, вот так вот

update TABLE WORKERS t set
t.worker=worker(NULL,NULL) where t.worker IS NULL;


А какие проблемы возникают если этого не сделать? Хочеться знать на будущее.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Obect-oriented features / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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