Oracle Ошибка отображения изображения вершины 19.1 ORA-00932: несогласованные типы данных: ожидаемый CHAR получил LONG BINARY - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь отобразить изображение в oracle apex 19.1, которое сохраняется как LONG RAW в столбце базы данных.

Я создал новую страницу с новым регионом.

Это запрос выбора sql в регионе в виде классического c отчета.

select ID,
       PHOTO
  from MY_TABLE
  where "ID"= '1'

Я изменил тип столбца PHOTO на Display Image, а в столбце BLOB Attributes -> BLOB он отображается как varchar2 вместо LONG RAW

И когда я запускаю приложение, я вижу следующую ошибку :

report error:
ORA-00932: inconsistent datatypes: expected CHAR got LONG BINARY

1 Ответ

0 голосов
/ 08 мая 2020

Боже мой, пожалуйста, не используйте больше тип данных LONG RAW, используйте вместо него BLOB. Это устарело уже несколько десятилетий. (Я считаю, что единственная причина, по которой он все еще существует, заключается в том, что Oracle использует LONG для хранения представлений и значений по умолчанию.)

EDIT:

Согласно документации , на самом деле перенести LONG на LOB довольно просто. Вот минимальный пример:

CREATE TABLE t (id NUMBER PRIMARY KEY, x LONG RAW);
INSERT INTO t VALUES (1, RPAD('a', 2000, 'a'));

Таблица может быть перенесена в `BLOB:

ALTER TABLE told MODIFY (x BLOB) LOB (x) STORE AS SECUREFILE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...