powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / SQL-gateway и "большие" данные
5 сообщений из 5, страница 1 из 1
SQL-gateway и "большие" данные
    #34902796
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
Есть таблица в oracle:
SQL> desc ma_tmp;
Name Type Nullable Default Comments
---- ------------- -------- ------- --------
A VARCHAR2(250) Y

В ней одна запись:
SQL> select * from ma_tmp;
A
--------------------------------------------------------------------------------
Это длинное текстовое поле, которое я хочу прочитать из Cache. И фиг прочитаю.

Пытаюсь сделать select этой таблицы из cache с помощью sql-gteway:
TEST n
s USER="USER",PASSWORD="PASSWORD",DSN="DSN"
S Connection=##class(%Library.SQLGatewayConnection).%New()
d Connection.Connect(DSN,USER,PASSWORD)
d Connection.AllocateStatement(.Statment)
d Connection.Prepare(Statment,"select * from ma_tmp")
d Connection.Execute(Statment)
d Connection.Fetch(Statment)
d Connection.GetOneRow(Stat,.Row)
w $LG(Row,1),!
d Connection.DropStatement(Statment)
D Connection.Disconnect()
q
Получаю:
USER>d ^STARTTEST
Это длинное текстовое поле, которое я хочу прочитать из Cac??????????????????
И при селектах любые данные, длиннее 59! символов заменяются занаками "?". Причем между значащими символами и знаками "?" стоит $C(0).

При этом функции вызываются нормально:
Функция в oracle:
create or replace function MA_TEMP return varchar2 is
v_a varchar2(250);
begin
select a
into v_a
from ma_tmp;
return(v_a);
end MA_TEMP;

программа в cache:
TEST n
s USER="USER",PASSWORD="PASSWORD",DSN="DSN"
S Connection=##class(%Library.SQLGatewayConnection).%New()
d Connection.Connect(DSN,USER,PASSWORD)
d Connection.AllocateStatement(.Statment)
d Connection.BindParameters(Statment,$lb(4),$lb(""),$lb(""),$lb(""),$lb(""))
d Connection.Prepare(Statment,"begin ?:=ma_temp(); end;")
d Connection.Execute(Statment)
d Connection.GetParameter(Statment,1,.VALUE)
w $LG(VALUE,1),!
d Connection.DropStatement(Statment)
D Connection.Disconnect()
q
получаем:
USER>d ^STARTTEST
Это длинное текстовое поле, которое я хочу прочитать из Cache. И фиг прочитаю.


Где могут быть настройки для результатов селекта?
В какую сторону мне смотреть?
...
Рейтинг: 0 / 0
SQL-gateway и "большие" данные
    #34902850
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
1. Попробуйте мастером связать таблицу из Oracle, а потом прочитать из связанной таблицы данные. Читаются "большие данные"?

2. Попробуйте работать с ODBC примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Set Connection=##class(%SQLGatewayConnection).%New()
Set res = Connection.Connect("DSNName","username","pwd")
Set ResSet=##class(%ResultSet).%New("%DynamicQueryGW:SQLGW")
Do ResSet.Prepare("SELECT * FROM TABLE",,Connection)
Do ResSet.Execute()
while ResSet.Next()
{
For i= 1 : 1 :ResSet.GetColumnCount()
{
             if (i'=ResSet.GetColumnCount())
             {
                         Write ResSet.GetData(i)_", "
             }
             else
             {
                         Write ResSet.GetData(i),!
             }
}
}
d Connection.Disconnect()

3. Если у Вас версия Cache 2007.x, то можно попробовать работать с Oracle не через ODBC, а через JDBC.
...
Рейтинг: 0 / 0
SQL-gateway и "большие" данные
    #34902876
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
Более подробно об использовании Caché SQL Gateway можно почитать тут:

http://www.intersystems.ru/cache/education/docs/sqlgw.html

Там, правда, по версии 5.0.x.
...
Рейтинг: 0 / 0
SQL-gateway и "большие" данные
    #34903529
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1-й способ (связанная таблица) и, самое главное, 2-й работают!!!
Огромное спасибо!
Переделаю все запросы на ##class(%ResultSet).%New("%DynamicQueryGW:SQLGW")

Хотя странно, что один и тот же запрос с разных сторон работает по разному..
Как вы думаете - это проблема для wrc или фича? :)
...
Рейтинг: 0 / 0
SQL-gateway и "большие" данные
    #34903574
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
MaWrХотя странно, что один и тот же запрос с разных сторон работает по разному..
Как вы думаете - это проблема для wrc или фича? :)
Поскольку Вы работали с ODBC на низком уровне, возможно Вами не были учтены какие-то моменты.
Лучше обратиться к Вашему консультанту.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / SQL-gateway и "большие" данные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]