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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП в PL/SQL, не получаются некоторые вещи 
:(
    Опции темы
azesmcar
Дата 8.5.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Добрый день,

С утра рыскаю в интернете в поисках решения, нет могу ничего найти, ответьте пожалуйста на несколько вопросов.

1. Как создать абстрактный класс/интерфейс?
2. Как создать виртуальную функцию?

мне нужно создать тип (интерфейс) в котором нет атрибутов, но выдается
Цитата

PLS-00589: no attributes found in object type "string" 
Cause: Table of non adt type is defined.
Action: Table of type should be of ADT type only

вот код
Код

create or replace type base_obj is object
(
    member procedure handle_action(action varchar2),
    member procedure available_actions
);

как исправить?
заранее спасибо.
PM   Вверх
Zloxa
Дата 8.5.2009, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



1) никак
2) not final

Добавлено через 52 секунды
Цитата(azesmcar @  8.5.2009,  11:16 Найти цитируемый пост)
как исправить?

Добавить фиктивный аттрибут


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 8.5.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Zloxa @  8.5.2009,  11:27 Найти цитируемый пост)
Добавить фиктивный аттрибут 

Ну об этом я догадывался smile 
просто некрасиво как-то..с ООП в оракл впервые сталкиваюсь..раньше со старыми версиями работал, а в 10 вроде говорят мощная поддержка ООП, а вот и нет оказывается smile

спасибо.

Добавлено через 4 минуты и 21 секунду
еще пару вопросов
Я так понимаю инкапсуляции тут тоже нет? фиктивный атрибут будет открытым.
и как насчет not final? т.е. это применяется к самому типу а не к функции? а если мне нужно чтобы только одна функция была виртуальной?
PM   Вверх
Zloxa
Дата 8.5.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(azesmcar @  8.5.2009,  11:34 Найти цитируемый пост)
Я так понимаю инкапсуляции тут тоже нет? 

Да

Цитата(azesmcar @  8.5.2009,  11:34 Найти цитируемый пост)
т.е. это применяется к самому типу а не к функции? 

Да


Цитата(azesmcar @  8.5.2009,  11:34 Найти цитируемый пост)
говорят 

 smile 
Кто?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 8.5.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Zloxa @  8.5.2009,  11:47 Найти цитируемый пост)
 smile 
Кто? 

лгунишки smile 
да у них и на сайте было вроде написано..одно применение слова ООП в контексте с оракл достаточно чтобы заподозрить что они поддерживают полиморфизм, инкапсуляцию и наследование.
 smile 
PM   Вверх
Zloxa
Дата 8.5.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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




Цитата(azesmcar @  8.5.2009,  11:57 Найти цитируемый пост)
полиморфизм, инкапсуляцию и наследование.


Полиморфизм, в какойто степени да есть, его поболее будет нежели в VB, которого там нет вообще
Инкапсуляция, в какой то степени да реализована
Наследование, в какой то стпеени да реализовано




Это сообщение отредактировал(а) Zloxa - 8.5.2009, 13:40


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 8.5.2009, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



вот и я об этом, все в какой-то степени..
Цитата(Zloxa @  8.5.2009,  12:15 Найти цитируемый пост)
Инкапсуляция, в какой то степени да реализована

а вот тут подробнее пожалуйста..в какой именно степени?
PM   Вверх
Zloxa
Дата 8.5.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(azesmcar @  8.5.2009,  12:22 Найти цитируемый пост)
а вот тут подробнее пожалуйста..в какой именно степени? 

инкапсуляция это не только сокрытие данных.
Изначально это лишь объединение данных и методов их обработки в одной структуре. Это потом уже доразвили видимости всякие.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 8.5.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(Zloxa @  8.5.2009,  13:40 Найти цитируемый пост)
инкапсуляция это не только сокрытие данных.

изначально - да, но то что вы называете "потом" настало довольно давно smile 
ладно, спасибо...буду копать дальше.
PM   Вверх
v2v
Дата 10.5.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(azesmcar @  8.5.2009,  12:22 Найти цитируемый пост)

а вот тут подробнее пожалуйста..в какой именно степени? 

Если всё же рассматривать инкапсуляцию как сокрытие кода и области видимости , то как по мне она реализована, чуть ли не в полной мере:
- объявляете функцию только в body , и она будет доступна только внутри пакета
- объявляете функцию внутри другой функции, и она будет доступна только внутри этой функции.
С типами и простыми переменными аналогично.

Полиморфизм и наследование  тоже как по мне реализованы в пределах возможностей Pl/Sql приемлемо.





--------------------
PM   Вверх
Zloxa
Дата 11.5.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(v2v @  10.5.2009,  17:30 Найти цитируемый пост)
объявляете функцию только в body

не понял о чем речь, не путаете ли вы объекты с пакетами?
Или я чота не дознаю?
Код

SQL> create or replace type tst as object(
  2    foo number,
  3    member function bar return boolean
  4  );
  5  /

Type created.

SQL> create or replace type body tst
  2  is
  3  member function bar return boolean is begin return true; end;
  4  member function bar1 return boolean is begin return false; end;
  5  end;
  6  /

Warning: Type Body created with compilation errors.

SQL> SHOW ERR
Errors for TYPE BODY TST:

LINE/COL ERROR
-------- -----------------------------------------------------------------
4/17     PLS-00539: subprogram 'BAR1' is declared in an object type body
         and must be defined in the object type specification

SQL>



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
v2v
Дата 11.5.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Zloxa @  11.5.2009,  01:34 Найти цитируемый пост)

не понял о чем речь, не путаете ли вы объекты с пакетами?

путаю, но путаю сознательно. как по мне так с помощью пакетов можно и реализовать какое то подобие ООП в оракле.


--------------------
PM   Вверх
DimW
Дата 12.5.2009, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(v2v @  11.5.2009,  11:51 Найти цитируемый пост)
как по мне так с помощью пакетов можно и реализовать какое то подобие ООП в оракле

продемонстрировать можите?
PM MAIL ICQ   Вверх
azesmcar
Дата 12.5.2009, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата(DimW @  12.5.2009,  06:32 Найти цитируемый пост)
продемонстрировать можите? 

 smile 

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

PM   Вверх
Zloxa
Дата 12.5.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


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

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



Цитата(DimW @  12.5.2009,  06:32 Найти цитируемый пост)
продемонстрировать можите? 


Цитата(azesmcar @  12.5.2009,  08:45 Найти цитируемый пост)
я бы тоже хотел взглянуть..

Да ладно, парни, чо вы глумитесь?

ООП появился много раньше нежели его стали держать языки.....

В дремучие времена, когда XTшки только начали вытеснять монстрообразные шкафы ДВК на ОЧЕНЬ КРУТЫХ производственных предприятиях, я самолично читал в "науке и жизни" статьи о применении объектно-ориентированного подхода при написании программ на С (без плюсов) и ASM.

На PL/SQL тоже можно какнить извратиться... Полиморфизм, правда, без динамики врдяли удатся - нет такого понятия как указатель smile)

Это сообщение отредактировал(а) Zloxa - 12.5.2009, 09:31


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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