ошибка при попытке создать объект изображения (ORA-06512: в ORDSYS.SI_STILLIMAGE, строка 14)

В Oracle Database 19c я не могу создать ORDSYS.SI_StillImage () (пробовал на многих изображениях, загруженных с предыдущей версией базы данных). Тот же код работает в Oracle 12c.

Я пробовал это на двух разных установках Oracle 19c с той же ошибкой.

Вот тестовый пример:

Оракул 19c

u@db19> SELECT BANNER_FULL FROM v$version;

BANNER_FULL
----------------------------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.8.0.0.0


u@db19> DECLARE
  2    l_raw raw(32767);
  3    l_stillImage  ORDSYS.SI_StillImage;
  4  BEGIN
  5    l_raw := 'FFD8FFE000104A46494600010101004800480000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828FFC00011080014001403012200021101031101FFC4001800010101010100000000000000000000000007080305FFC4002C10000103030203060700000000000000000102030400051112130607311421224151B1153233617191F0FFC400160101010100000000000000000000000000040305FFC4001C1100030100020300000000000000000000000102031113313261FFDA000C03010002110311003F00AEF34EE721FB83764624BF1D9D80FBDB0A29539A8A825248EFD3E139F5A8DE8BBF062FE2D63B83E24B4ADD533A8ED3C9CF890A4F4208F3EA3A8AAD73BEDA8DB8971712F14287673B2AD2750CA939FB7CD52792B8EF34E3AA43A429AD214A57418C778F5A054D7655335F251582492FA6A6B6CB6E7DBA2CC67E948692F23F0A008F7A578BC0778B5DDB85E12EC8F39221C7426285A995B67520049185007BBF54A7992FC9C799E80BE02BC838076320E904A4E4608C82323D6A1DCB1B5B3C5B7B306ECB77B33414AD2C908D783E671ED8A52A37EC84E0DACEB8348DBA0C6B6C2661C1650C46693A50DA06001FDE74A52AC14FFFD9';
  6    l_stillImage := NEW SI_StillImage(to_blob(l_raw));
  7    --
  8    dbms_output.put_line('height: '||l_stillImage.height_SI);
  9    dbms_output.put_line('width: '||l_stillImage.width_SI);
 10    dbms_output.put_line('format: '||l_stillImage.format_SI);
 11    dbms_output.put_line('mime: '||l_stillImage.mimeType_ora);
 12  END;
 13  /
DECLARE
*
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "ORDSYS.SI_STILLIMAGE", line 14
ORA-06512: at line 6

Оракул 12c


su@db12> SELECT * FROM v$version;

BANNER                                                                                    CON_ID
-------------------------------------------------------------------------------- ---------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production                   0
PL/SQL Release 12.1.0.2.0 - Production                                                         0
CORE    12.1.0.2.0      Production                                                                     0
TNS for Linux: Version 12.1.0.2.0 - Production                                                 0
NLSRTL Version 12.1.0.2.0 - Production                                                         0

su@db12> DECLARE
  2    l_raw raw(32767);
  3    l_stillImage  ORDSYS.SI_StillImage;
  4  BEGIN
  5    l_raw := 'FFD8FFE000104A46494600010101004800480000FFDB00430006040506050406060506070706080A100A0A09090A140E0F0C1017141818171416161A1D251F1A1B231C1616202C20232627292A29191F2D302D283025282928FFDB0043010707070A080A130A0A13281A161A2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828FFC00011080014001403012200021101031101FFC4001800010101010100000000000000000000000007080305FFC4002C10000103030203060700000000000000000102030400051112130607311421224151B1153233617191F0FFC400160101010100000000000000000000000000040305FFC4001C1100030100020300000000000000000000000102031113313261FFDA000C03010002110311003F00AEF34EE721FB83764624BF1D9D80FBDB0A29539A8A825248EFD3E139F5A8DE8BBF062FE2D63B83E24B4ADD533A8ED3C9CF890A4F4208F3EA3A8AAD73BEDA8DB8971712F14287673B2AD2750CA939FB7CD52792B8EF34E3AA43A429AD214A57418C778F5A054D7655335F251582492FA6A6B6CB6E7DBA2CC67E948692F23F0A008F7A578BC0778B5DDB85E12EC8F39221C7426285A995B67520049185007BBF54A7992FC9C799E80BE02BC838076320E904A4E4608C82323D6A1DCB1B5B3C5B7B306ECB77B33414AD2C908D783E671ED8A52A37EC84E0DACEB8348DBA0C6B6C2661C1650C46693A50DA06001FDE74A52AC14FFFD9';
  6    l_stillImage := NEW SI_StillImage(to_blob(l_raw));
  7    --
  8    dbms_output.put_line('height: '||l_stillImage.height_SI);
  9    dbms_output.put_line('width: '||l_stillImage.width_SI);
 10    dbms_output.put_line('format: '||l_stillImage.format_SI);
 11    dbms_output.put_line('mime: '||l_stillImage.mimeType_ora);
 12  END;
 13  /
height: 20
width: 20
format: JFIF
mime: image/jpeg

PL/SQL procedure successfully completed.


person Herbi    schedule 25.01.2021    source источник


Ответы (1)


Пакет ORDSYS является частью Oracle Multimedia, и одним из изменений в 19c является то, что Oracle Multimedia больше не работает (см. https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/behavior-changes-deprecated-desupport-oracle-database.html#GUID-BABC1C60-EA07-4EBE-8C67-B69B59E4F742)

Итак, согласно совету по приведенной выше ссылке (и скопирован локально ниже) вам нужно будет переместить свои изображения в LOB (CLOB, BLOB, SecureFile LOB) и использовать другой метод для их обработки.

Ниже приводится цитата со страницы выше

Oracle Multimedia будет удалена из Oracle Database 19c. При обновлении или переносе базы данных на Oracle 19c API-интерфейсы Oracle Multimedia по-прежнему будут существовать, но больше не будут работать.

Отказ от поддержки Oracle Multemedia

Oracle Multimedia больше не поддерживается в Oracle Database 19c, а реализация удалена.

В качестве альтернативы обработке и преобразованию изображений Oracle рекомендует хранить мультимедийный контент в больших объектах SecureFiles и использовать сторонние продукты, такие как Piction. Компонент ORDIM остается в реестре и имеет статус VALID. Объекты и пакеты Oracle Multimedia остаются в базе данных. Однако эти объекты и пакеты больше не работают и вызывают исключения при попытке их использования. Отсутствие поддержки Oracle Multimedia не влияет на Oracle Locator.

person Shaun Peterson    schedule 28.01.2021