|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Добра! Версия: Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production Только начинаю разбираться с ORACLE. Подскажите, в каком случае (кроме именно типов/структур данных) используются объектные типы в oracle? Ведь есть же packages там внутри можно процедуры/функции создавать. Не могу понять, зачем создавать типы с кодом внутри, с if-ами и т.д. То, что это подобие ОО подхода я понимаю. И предок есть и наследник. Я вот хочу понять, какой должна быть задача, чтобы разработчик решил - " Ага, тут без объектного типа не обойтись..." Сразу скажу - гуглил. Примеры смотрел, но ясности "зачем" они нужны пока нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2021, 14:29 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
rtyts Подскажите, в каком случае (кроме именно типов/структур данных) используются объектные типы в oracle? ... Примеры смотрел, но ясности "зачем" они нужны пока нет. И ни у кого нет. Работайте без них. Если станет очень, очень, очень их не хватать, разберетесь как, что и, главное, зачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 12:28 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
rtyts, используем Object type, когда некий код используется в нескольких отчетах, которые имеют различные условия выбора. Удобно сопровождать, меняешь только запрос в функции. Создаем Object type и table type пишем функцию заполнения Object type и обращаемся, примерно таким образом: select * from table(f_func(par1, par2)). ф-я может имеет вид типа function f_func(par1 number,par2) return t_object_type_table pipelined is cur_ sys_refcursor; begin open cur_ for 'select t_object_type(v1,v2,v3) from t1 where v1='||par1||' and '||par2||';' LOOP FETCH cur_ into c; EXIT WHEN cur_%NOTFOUND; pipe row (C) ; END LOOP; CLOSE cur_; return; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 09:18 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Хороший человек rtyts, используем Object type, когда некий код используется в нескольких отчетах, которые имеют различные условия выбора. Удобно сопровождать, меняешь только запрос в функции. Создаем Object type и table type пишем функцию заполнения Object type и обращаемся, примерно таким образом: select * from table(f_func(par1, par2)). ф-я может имеет вид типа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Для оформления кода используйте, пожалуйста, тэг SRC. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 11:18 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Хороший человек ф-я может имеет вид типа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 12:41 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
andrey_anonymous, Код: sql 1.
- использовать bind variables вместо конкатенации не подойдет, если par2 будет например иметь значения ' v1 = 10'. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 13:07 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
А это уже SQL injection. От которой бинды как раз и защищают. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 13:38 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Хороший человек если par2 будет например иметь значения ' v1 = 10'. А если par2 будет иметь значение ' 1=0 union all select object_type(secret1,secret2,secret3) from secret_data' то что Вы скажете потом безопасникам? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2021, 10:45 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Я в одном проекте такое на объектах намутил: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Это формирование текста, где каждый метод add_step_info(), append_item(), tab(), cr() добавляет в текст соответствующую строку и возвращает новый объект. Не очень эффективно, но выглядит прикольно. В другом проекте - загружаю данные из EXCEL, формируя объект, а в конструкторе сразу вычисляю по текстовым полям значения из справочников. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2021, 12:21 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Sah Я в одном проекте такое на объектах намутил: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Это формирование текста, где каждый метод add_step_info(), append_item(), tab(), cr() добавляет в текст соответствующую строку и возвращает новый объект. Не очень эффективно, но выглядит прикольно. В другом проекте - загружаю данные из EXCEL, формируя объект, а в конструкторе сразу вычисляю по текстовым полям значения из справочников. Как насчет сопровождения такого кода другими разработчиками и тестерами? Тоже "Не очень эффективно, но выглядит прикольно?" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2021, 18:35 |
|
объектные типы или packages
|
|||
---|---|---|---|
#18+
Азм есть один во всех ипостасях. Что тут сопровождать? Клиентский код гораздо лучше чем Код: plsql 1.
. А в объект можно один раз слазить, посмотреть, как реализовано, забыть и пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2021, 10:34 |
|
|
start [/forum/topic.php?fid=52&msg=40094042&tid=1879939]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 268ms |
0 / 0 |