Oracle
 sql >> база данни >  >> RDS >> Oracle

INSERT с ORDER на Oracle

Можене надеждно контролира в какъв ред Oracle извлича реда от таблица без ORDER BY .

Освен това, без /*+APPEND*/ намек, Oracle ще съхранява редовете физически в купчина таблица, където има място, което може да не е в края на таблицата! Може да мислите, че Oracle ги вмъква последователно, но всяка DML или едновременна дейност (вмъкване на 2+ сесии) може да доведе до различна физическа организация.

Можете да използвате таблица INDEX ORGANIZED, за да съхранявате редовете в реда на PK. Повечето прости заявки след това в тази таблица ще произведат сортиран набор от редове. Това обаче няма да гарантира, че oracle ще избере редовете в този ред, ако не посочите ORDER BY (в зависимост от заявката и пътя за достъп редовете могат да идват в произволен ред).

Можете също да използвате изглед с поръчка от, това вероятно е най-добрият ви залог, ако не можете да докоснете приложението (преименувайте таблицата, създайте изглед с името на таблицата, оставете приложението да мисли, че запитва таблицата). Не знам дали е осъществимо във вашия случай.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пресъздайте лош RAC възел

  2. Дългите низове в N-Hibernate с Oracle причиняват грешка

  3. Как мога да вмъкна няколко реда в oracle със стойност на последователност?

  4. Задаване на езикови параметри на Oracle за DG4ODBC

  5. Намерете максималните последователни години за всеки идентификатор в таблица (Oracle SQL)