|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Как уже сообщалось ранее В облаке Oracle уже доступна Автономная Oracle Database 21c (Always Free) Предлагаю в этой теме обсудить новые возможности языка Oracle Database 21c SQL. Только SQL! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:00 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Зачем? Лет через пять, когда можно будет без страха ими пользоваться, стоящие новшества уже будут на слуху, а меркетинговый bull-shit затухнет. А подавляющему большинству "новизна" новшеств - по барабану. Не говоря уже про принятую в этой корпорации первоначальную глючность любых новшеств. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:06 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Новая агрегатная (групповая) функция CHECKSUM https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/checksum.html Purpose Use CHECKSUM to detect changes in a table. The order of the rows in the table does not affect the result. You can use CHECKSUM with DISTINCT, as part of a GROUP BY query, as a window function, or an analytical function. Semantics ALL: Applies the aggregate function to all values. ALL is the default option. DISTINCT or UNIQUE: Returns the checksum of unique values. UNIQUE is an Oracle-specific keyword and not an ANSI standard. expr: Can be a column, constant, bind variable, or an expression involving them. All data types except ADT and JSON are supported. The return data type is an Oracle number (converted from an (8-byte) signed long long) regardless of the data type of expr. NULL values in expr column are ignored. It returns NULL if expr is NULL. The output of the CHECKSUM function is deterministic and independent of the ordering of the input rows. Провёл эксперимент. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Как видим, если значения столбца уникальны, результат для ALL и DISTINCT одинаковый. Что и следовало ожидать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:10 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Как видим, если значения столбца уникальны, результат для ALL и DISTINCT одинаковый. Что и следовало ожидать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:23 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Elic SQL*Plus Как видим, если значения столбца уникальны, результат для ALL и DISTINCT одинаковый. Что и следовало ожидать. Написано, что не зависит: The output of the CHECKSUM function is deterministic and independent of the ordering of the input rows. Проверь. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:25 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Напомните плз по групп баям, а то за новинками не успеваю... Произведение сделали? Конкатенацию строк listagg в clob сделали? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:33 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/BIT_AND_AGG.html BIT_AND_AGG Syntax Purpose BIT_AND_AGG is a bitwise aggregation function that returns the result of a bitwise AND operation. You can use BIT_AND_AGG as part of a GROUP BY query, window function, or as an analytical function. The return type of BIT_AND_AGG is always a number. Есть аналогичные BIT_OR_AGG и BIT_XOR_AGG Пример: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:37 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Elic пропущено... А проверять надо было бы то, что результат не зависит от порядка строк. Написано, что не зависит: The output of the CHECKSUM function is deterministic and independent of the ordering of the input rows. Проверь. Я проверил. От порядка трок результат не зависит: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:39 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
andreymx Напомните плз по групп баям, а то за новинками не успеваю... Произведение сделали? Конкатенацию строк listagg в clob сделали? Не всё сразу. Постепенно разберёмся, раз уж выложили в доступ Oracle 21c. Для этого и тема была создана. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:41 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Тут всё осталось, как было в Oracle 19с https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/LISTAGG.html LISTAGG ................................ The maximum length of the return data type depends on the value of the MAX_STRING_SIZE initialization parameter. If MAX_STRING_SIZE = EXTENDED, then the maximum length is 32767 bytes for the VARCHAR2 and RAW data types. If MAX_STRING_SIZE = STANDARD, then the maximum length is 4000 bytes for the VARCHAR2 data type and 2000 bytes for the RAW data type. A final delimiter is not included when determining if the return value fits in the return data type. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 19:47 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Написано, что не зависит: The output of the CHECKSUM function is deterministic and independent of the ordering of the input rows. Проверь. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:02 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Elic А проверять надо было бы то, что результат не зависит от порядка строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:04 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
oragraf Elic А проверять надо было бы то, что результат не зависит от порядка строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:13 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/BIT_AND_AGG.html BIT_AND_AGG Syntax Purpose BIT_AND_AGG is a bitwise aggregation function that returns the result of a bitwise AND operation. You can use BIT_AND_AGG as part of a GROUP BY query, window function, or as an analytical function. The return type of BIT_AND_AGG is always a number. Есть аналогичные BIT_OR_AGG и BIT_XOR_AGG Пример: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
mul_and_agg не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:20 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Elic SQL*Plus Написано, что не зависит: The output of the CHECKSUM function is deterministic and independent of the ordering of the input rows. Проверь. Уже было. 22255936 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:24 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:28 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
автор Enhanced SQL Set Operators The SQL set operators now support all keywords as defined in ANSI SQL. The new operator EXCEPT [ALL] is functionally equivalent to MINUS [ALL]. The operators MINUS and INTERSECT now support the keyword ALL. Очень интересно работают MINUS ALL / EXCEPT ALL и INTERSECT ALL: Код: 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.
Описание Set Operators приводить не стал, поскольку там какая-то явная ерунда написана. Писал человек, не понимающий о чем речь, но успешно использующий Copy + Paste Для удобства ваших ваших экспериментов прикрепляю файл demobld.sql для создания демо-таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:35 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
andreymx SQL*Plus Нет, не пробовал. Попробуешь и нам расскажешь. Ага? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:36 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus andreymx пропущено... с разными NLS-ами пробовал? Нет, не пробовал. Попробуешь и нам расскажешь. Ага? :-) Я проверил. Для русского языка работает. Код: 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.
Файл M_IM.txt с русскими именами прилагается. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 20:54 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Описание Set Operators приводить не стал, поскольку там какая-то явная ерунда написана. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:09 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Я проверил. Для русского языка работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:13 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Elic SQL*Plus Описание Set Operators приводить не стал, поскольку там какая-то явная ерунда написана. Слушай, дорогой друг. Чего ты "спортивно" пристал, как банный лист к голеностопу? Я рассказываю о новых возможностях новой версии нашей любимой СУБД, а ты тут глупо бухтищь, ворчишь и скрипишь не по делу. Не хочешь помогать изучению новых возможностей, так хотя бы не мешай. Иди на своё производство, к своему станку 11.2.0.4 и работай, работай, работай. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:17 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
Elic SQL*Plus Я проверил. Для русского языка работает. Проверь и расскажи нам, что получится. Например, запиши ещё что-нибудь в поле типа NVARCHAR2. Предполагаю, что для разных кодировок могут быть разные результаты. И что? Use CHECKSUM to detect changes in a table. Эту задачу функция выполнит, а другого никто не обещал. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:20 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus, А коллизии возможны? (одинаковый результат для разных значений поля, например) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:27 |
|
Oracle Database 21c. SQL. New Features
|
|||
---|---|---|---|
#18+
SQL*Plus Elic пропущено... Ты не понял, что нужно проверять. Я объясняю: в БД с разными кодировками одинаков ли результат чексуммирования? Проверь и расскажи нам, что получится. Например, запиши ещё что-нибудь в поле типа NVARCHAR2. Предполагаю, что для разных кодировок могут быть разные результаты. И что? Use CHECKSUM to detect changes in a table. Эту задачу функция выполнит, а другого никто не обещал. Проверил. Всё так, как я предполагал. Код: 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.
Результат "чексуммирования" получился разный. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2020, 21:30 |
|
|
start [/forum/topic.php?fid=52&fpage=28&tid=1880552]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 431ms |
0 / 0 |