|
|
|
chain of type attr
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Видим что возвращает null ни смотря на то что запрашиваются отрабуты не инициализированных объектов. Можно ли измнить поведение параеметром или как-то, чтобы если объект не инициализирован, то был экзепшен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 17:53:38 |
|
||
|
chain of type attr
|
|||
|---|---|---|---|
|
#18+
https://docs.oracle.com/database/121/ADOBJ/adobjplsql.htm#ADOBJ7175 How PL/SQL Treats Uninitialized Objects In an expression, attributes of an uninitialized object evaluate to NULL. Видимо только через методы-геттеры. При обращении к такому методу проверка на неинициализированный объект уже срабатывает: create or replace type X1 as object ( x integer, member function getX return x%type ) / create or replace type body X1 is member function getX return x%type is begin return self.x; end; end; / SQL> set serveroutput on declare x x3; begin dbms_output.put_line('result ' || nvl(to_char(x.x.x.getX), 'null')); end; SQL> 2 3 4 5 6 / declare * ERROR at line 1: ORA-30625: method dispatch on NULL SELF argument is disallowed ORA-06512: at line 4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 00:52:19 |
|
||
|
chain of type attr
|
|||
|---|---|---|---|
|
#18+
plsqlO, Геттеры было бы хорошо, но хотелось бы эти объекты потом в SQL использовать, а при таком подходе он весь объект в SQL суёт, что не выглядит хорошо. Select ... from ... where id = x.x.x.getX В SQL улетит весь X объект вместо результата метода. Можно предвычислять в переменную, но таких мест уж очень много, не красиво получится. Второе таким образом в коде создаться множество вычисляемых методов, что тоже не выглядит хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 10:48:01 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=207&tid=1887689]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
83ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 352ms |

| 0 / 0 |
