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

Защо типът данни Long е заменен с LOB в Oracle?

LOB всъщност са четири различни типа данни:CLOB за LONG и BLOB за LONG RAW, плюс BFILE и XMLType. Oracle въведе тези типове още през 90-те години, защото LONG (и LONG RAW) са Teh Suck! и ужасно труден за работа. Няма причина да използвате LONG вместо LOB, ако версията на базата данни е 8.0 или по-нова.

Така че защо все още имаме LONG?

LONG и CLOB са примитивни типове данни. Така че макар теоретично да е вярно, че Oracle можеше да промени LONG, за да има "допълнителните специални функции" на CLOB на практика, което би имало катастрофално въздействие върху надграждането на бази данни до 8.0 (версията, която въведе LOB).

Да се ​​каже, че катастрофално е може би хиперболично, но фактът е, че преоборудването на функции в стил CLOB към LONG означава промяна на типовете данни . Така че надстройката трябваше да включва автоматично преобразуване на данни. Освен това вероятно има всякакви рутинни процедури на ниско ниво, чието поведение би трябвало да се промени. Това е просто масивен вектор за повреда на данни. Много по-просто (и следователно по-безопасно) е да се въведе нов тип данни и да се остави отделни сайтове да се справят с миграцията.

Oracle отхвърли LONG от 8.0 насам и предостави механизми за преобразуване на LONG в CLOB, така че в един идеален свят всеки би продължил напред и Oracle можеше да премахне типовете данни LONG от базата данни. Въпреки това, в реалния живот много магазини все още използват LONGs и твърде много биха се счупили.

Така че Oracle трябва да ги запази. Мащабът на проблема може да бъде извлечен от факта, че Oracle все още използва самия LONG в речника на данните (като USER_/ALL_/DBA_VIEWS).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Удивителен знак в SQL (Oracle)

  2. как да извличам, изтривам, ангажирам от курсора

  3. Връщане на номер от оператора Oracle Select след датата на синтактичен анализ

  4. Настройки на Django oracle db

  5. времето за изчакване на транзакцията не работи при хибернация с oracle