|
|
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые коллеги! Как вы уже знаете, 1 июля 2013 г. была выпущена новая версия СУБД Oracle Database 12c (12.1.0.1) Предлагаю в этой теме показывать и обсуждать новые возможности языка Oracle SQL, появившиеся в этой самой новой версии СУБД Oracle. Это поможет всем нам быстрее узнать о существовании этих новых функциональных возможностей, разобраться с тем, как они работают и понять где их уместно применять. Для затравки: Использование последовательностей в DEFAULT В Oracle SQL 12с существенно расширены функции, реализуемые фразой DEFAULT при определении столбцов таблиц. Как вы видите в качестве значения по умолчанию может быть использовано выражение. А выражением может быть следующее (NEXTVAL) и текущее (CURRVAL) значение последовательности. Ниже привожу пример (скрипт прилагается): Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:16 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий Юринский, А это не опасно - CURRVAL указывать? Если в сессии INSERT INTO sq_emp будет первой командой - мы рискуем получить ошибку. Хотя.... наверно и правильно. Прикольно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:21 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Павел Воронцов, CURRVAL я специально использовал, чтобы показать, как это использовать, чтобы "привязать" сотрудников к только что созданному отделу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:24 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Павел ВоронцовА это не опасно - CURRVAL указывать? Если в сессии INSERT INTO sq_emp будет первой командой - мы рискуем получить ошибку. Хотя.... наверно и правильно. Возможно, нельзя использовать CURRVAL в определении столбца без определения NEXTVAL в предыдущих столбцах. Это было бы логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:27 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий Юринский, странно читать о маленькой части того что добавили... а как же identity_clause? или как насчет ограничений с правами на последовательности? где пример с ошибкой в случае отсутствия прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:31 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий Юринский, так же довольно интересно выглядит применимость identity_clause. На сколько понял, то в этом случае для столбца строится свой "персональный сиквенс". Не совсем правда понимаю его смысл при наличии возможности указать в default нормальный сиквенс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:31 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
pravednik, ну так введение identity_clause это чтобы честно можно было сказать что мы не хуже всяких mssqlей))) имхо граблей только добавиться. как и скрытых багов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:33 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
По мнению Тома Кайта, которое он высказал вчера 10 июля 2013 г. в ходе Launch Webcast: Plug into the Cloud with Oracle Database 12c список Top 12 New Features of Oracle Database 12c выглядит так: Top 12 New Features of Oracle Database 12c by Thomas Kyte 1. PL/SQL functions in SELECT With Clause 2. Improved DEFAULT (Sequences & Identities) 3. VARCHAR2(32767 BYTE) 4. SELECT ... SAMPLE ... TOP 10 5. W-shape in SQL 6. Partitioning improvement 7. Adaptive Execution Plans 8. Enhanced Statistics 9. Temporary Undo 10. Adaptive Data Optimization (Heat Map) 11. Application Continuity & Transaction Guard 12. Pluggable Databases Запись должна быть доступна после регистрации (мне она доступна) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:33 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
фвафвыаываывПавел ВоронцовА это не опасно - CURRVAL указывать? Если в сессии INSERT INTO sq_emp будет первой командой - мы рискуем получить ошибку. Хотя.... наверно и правильно.Возможно, нельзя использовать CURRVAL в определении столбца без определения NEXTVAL в предыдущих столбцах. Это было бы логично.Сероникий камрад! Ты ляпнул полную хрень. Подумай еще. И лучше делать это головой :) В примере все хорошо видно, что и как, ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:36 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
фвафвыаываывв предыдущих столбцах "Предыдущих" это сильно. Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:38 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
VintВалерий Юринский, странно читать о маленькой части того что добавили... а как же identity_clause? или как насчет ограничений с правами на последовательности? где пример с ошибкой в случае отсутствия прав?А почему странно? Что не так? identity_clause? Разберитесь с ней и расскажите нам. Для того я и создал эту тему, чтобы по очереди и вместе разбираться с новинками Oracle 12c SQL! :-) как насчет ограничений с правами на последовательности? где пример с ошибкой в случае отсутствия прав? Таблица не создастся, если прав не будет на последовательность. И всё. Больше оптимизма и непраздного любопытства! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:41 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Vintpravednik, ну так введение identity_clause это чтобы честно можно было сказать что мы не хуже всяких mssqlей))) имхо граблей только добавиться. как и скрытых багов....Неее... Это для безболезненного портирования с эмэс суля приложений. Дядя Том же говорил, что именно так Оракл собирается покорить вселенную подмять под себя конкурентов. Ну то есть он так не говорил, он говорил, что активно пишутся трансляторы в PL/SQL со всевозможных диалектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:46 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий ЮринскийИ всё. А вдруг revoke? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:48 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousВалерий ЮринскийИ всё. А вдруг revoke?А друг такой REVOKE не пройдет из-за того, что последовательность использована в DEFAULT у таблицы?! Вы же проведете соответствующий эксперимент?! А потом расскажете нам! Ага?! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 17:55 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий Юринский, создайте сиквенс, создайте таблицу с заполнением из этого сиквенса. дайте права на инсерт в эту таблицу другой схеме. попробуйте вставить. это все следует просто из прочтения документации. где об этом ясно по аглицки написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 18:00 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий ЮринскийПавел Воронцов, CURRVAL я специально использовал, чтобы показать, как это использовать, чтобы "привязать" сотрудников к только что созданному отделу. ага. а если отдел инсертнули и откатили. имхо, при том, что всё тут ясно - мутная (в смысле пользы) штука ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 18:20 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
orawishВалерий ЮринскийПавел Воронцов, CURRVAL я специально использовал, чтобы показать, как это использовать, чтобы "привязать" сотрудников к только что созданному отделу. ага. а если отдел инсертнули и откатили. имхо, при том, что всё тут ясно - мутная (в смысле пользы) штукада уж, сесть жопой на грабли и еще получить палкой по лбу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 19:37 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
ретурнинг прозрачнееorawishпропущено... ага. а если отдел инсертнули и откатили. имхо, при том, что всё тут ясно - мутная (в смысле пользы) штукада уж, сесть жопой на грабли и еще получить палкой по лбу.При такой конфигурации граблей пострадает не только жопа и лоб. И это еще обидней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 20:42 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий ЮринскийПавел Воронцов, CURRVAL я специально использовал, чтобы показать, как это использовать, чтобы "привязать" сотрудников к только что созданному отделу.Чтобы привязать сотрудников к вновь созданному отделу лучше использовать RETURNING ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 20:57 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
Валерий Юринскийidentity_clause? Разберитесь с ней и расскажите нам.да тут в общем-то ничего особенного: создается обычный сиквенс ISEQ$$_XXX где XXX - object_id таблицы, он отображается и в планах: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. рекурсивных "select ISEQ$$_XXX.nextval() from dual" как в приравнивание в pl/sql он не порождает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 22:01 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 22:22 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
xtenderкстати интересен момент вызова:забыл написать, что это был пример с default xt_sq.nextval ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 22:22 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
все Identity можно посмотреть в DBA_TAB_IDENTITY_COLS а имена сами сиквенсы в Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2013, 22:34 |
|
||
|
Oracle Database 12c. Новые возможности языка SQL
|
|||
|---|---|---|---|
|
#18+
xtenderВалерий Юринскийidentity_clause? Разберитесь с ней и расскажите нам.да тут в общем-то ничего особенного:...А покажите, пожалуйста, скрипт по созданию таблицы с Identity... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2013, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=38328492&tid=1885558]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
197ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 533ms |

| 0 / 0 |
