|
BLOB
|
|||
---|---|---|---|
#18+
Добрый день, господа. Вот назрел один вопрос. Можно ли получить BLOB поле в кашу из сторонней БД. Пример: есть некая таблица в оракле, необходимо из каши получать доступ к полю типа BLOB это таблице?? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2006, 18:07 |
|
BLOB
|
|||
---|---|---|---|
#18+
Поддерживаю вопрос. Настроили SQL Gateway, т.е. JDBC-подключение из Каши в Оракл. Далее воспользовались Link Table Wizard (Мастером связывания таблицы), чтобы создать класс на основе оракловой таблицы, содержащей поле типа BLOB. Однако вопреки ожиданиям свойство класса, соответствующее BLOB-полю в оракловой таблице, получило тип не %GlobalBinaryStream, а %String. Вопрос, если SQL Gateway не способен работать с BLOBами, какие есть альтернативы? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 11:39 |
|
BLOB
|
|||
---|---|---|---|
#18+
OwerОднако вопреки ожиданиям свойство класса, соответствующее BLOB-полю в оракловой таблице, получило тип не %GlobalBinaryStream, а %String.Oracle Database 10g Express Edition Release 10.2.0.1.0CREATE TABLE TEST3 ( ID INTEGER NOT NULL, B BLOB, PRIMARY KEY (ID) );Caché 2014.1/// Generated by the Link Table wizard on 2014-03-13 00:00:01. Note that you can access the data in this class only when the external database is accessible. Class TEST.TEST3 Extends %Library.Persistent [ Not ProcedureBlock, SqlRowIdPrivate, SqlTableName = TEST3, StorageStrategy = GSQLStorage ] { /// Specifies details for the SQL Gateway Connection that this class uses Parameter CONNECTION = "jdbc_test,NOCREATE"; /// Specifies the external database that this class uses Parameter EXTDBNAME = "Oracle"; /// Specifies the external table to which this class refers Parameter EXTERNALTABLENAME = "TEST.TEST3"; Property B As %Stream.GlobalBinary(CLASSNAME = 2, EXTERNALSQLNAME = "B", EXTERNALSQLTYPE = 2004) [ SqlColumnNumber = 3, SqlFieldName = B ]; Property ID As %Numeric(EXTERNALSQLNAME = "ID", EXTERNALSQLTYPE = 3, MAXVAL = 9223372036854775807, MINVAL = -9223372036854775808, SCALE = 0) [ ReadOnly, Required, SqlColumnNumber = 2, SqlFieldName = ID ]; Index MainIndex On ID [ IdKey, PrimaryKey ]; <Storage name="GSQLStorage"> <ExtentSize>100000</ExtentSize> <StreamLocation>^TEST.TEST3S</StreamLocation> <Type>%CacheSQLStorage</Type> </Storage> } ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 13:03 |
|
BLOB
|
|||
---|---|---|---|
#18+
Спасибо за ответ! Извините, забыл упомянуть что версия нашей Каши 2008.1.1 (Build 579U). Возможно, это и является причиной отсутствия поддержки BLOB через SQL Gateway. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2014, 13:27 |
|
BLOB
|
|||
---|---|---|---|
#18+
Сталкивались с подобной проблемой при передаче CLOB, просто поменяйте в сгенерированной таблице тип поля руками, на 2009-м и 2010-м каше работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 05:29 |
|
BLOB
|
|||
---|---|---|---|
#18+
Работает в смысле, что после ручного редактирования данные начинают нормально приходить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 05:30 |
|
BLOB
|
|||
---|---|---|---|
#18+
Спасибо, попробовали. Не получилось. Каша отказывается сохранить объект класса, соответствующего оракловой таблице, выдавая оракловую ошибку ORA-01465 (invalid hex number). Это притом, что в свойство типа %GlobalBinaryStream (тип мы как раз подправили вручную) мы пишем значение из другого %GlobalBinaryStream методом CopyFrom(). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2014, 13:26 |
|
|
start [/forum/topic.php?fid=39&fpage=22&tid=1556931]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 415ms |
0 / 0 |