Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
Очень нужно вызвать процедуру или функцию (уже и то и другое пробовал) MS SQL (8.0) через Gateway (Oracle 10g2).

Функции через gateway вообще недоступны:

На dbms_output.put_line(md5check@mastersql('aaaaaaaa')); получаем:

Compilation errors for PROCEDURE PROC.AAP_TST
Error: PLS-00222: no function with name 'MD5CHECK' exists in this scope
Line: 37
Text: dbms_output.put_line(md5check@mastersql('aaaaaaaa'));

Пытаюсь обойти это и выполнить просто селект с этой функцией:

c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@mastersql;
DBMS_HS_PASSTHROUGH.PARSE@mastersql(c,
'select md5check(?)');
DBMS_HS_PASSTHROUGH.BIND_VARIABLE(c,1,'aaaaaa');

LOOP
nr := DBMS_HS_PASSTHROUGH.FETCH_ROW@mastersql(c);
EXIT WHEN nr = 0;
DBMS_HS_PASSTHROUGH.GET_VALUE@mastersql(c, 1, val);
DBMS_OUTPUT.PUT_LINE(val);
END LOOP;


Получаю Compilation errors for PROCEDURE PROC.AAP_TST

Error: PLS-00201: identifier 'DBMS_HS_PASSTHROUGH.BIND_VARIABLE' must be declared
Line: 24
Text: DBMS_HS_PASSTHROUGH.BIND_VARIABLE(c,1,'aaaaaa');


Кто-нибудь работал с хранимыми процедурами и функциями через gateway?
Можете прислать пример кода? а то в доках с примерами как-то плохо...
17 окт 06, 18:32    [3273151]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
да, забыл отписать - шаманство с указанием имен баз и владельцев (типа master.dbo.md5check и пр.) ни к чему не приводит...

Вообще к базе доступ есть - т.е. запрос select count(*) from sysobjects@mastersql; выполняется нормально
17 окт 06, 18:40    [3273191]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
И еще..

Запрос select "md5check"@mastersql('aaaaa') from dual; дает ошибку
ORA-00904: "md5check": invalid identifier
17 окт 06, 18:58    [3273278]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6910
Sevick
Запрос select "md5check"@mastersql('aaaaa') from dual; дает ошибку
ORA-00904: "md5check": invalid identifier

кавыяки "" зачем?
18 окт 06, 10:32    [3274804]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
alex-ls
Sevick
Запрос select "md5check"@mastersql('aaaaa') from dual; дает ошибку
ORA-00904: "md5check": invalid identifier

кавыяки "" зачем?



В одном из примеров было именно так. Пробовал и с ними и без них....
18 окт 06, 11:13    [3275129]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
raw
Member

Откуда:
Сообщений: 133
В tg4msql....ora надо поставить
HS_FDS_PROC_IS_FUNC=TRUE
пример, кусочек из пакета:
IF  DBO."_1sp__1SCONST_TLock"@buh2 =0  THEN
18 окт 06, 12:14    [3275795]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
raw
В tg4msql....ora надо поставить
IF DBO."_1sp__1SCONST_TLock"@buh2 =0 THEN[/src]


А ."_1sp__1SCONST_TLock - это процедура или функция. У меня как - функции оракл вообще видеть не хочет, а из процедур ничего вытянуть не получается...

Не могли бы инишник от gateway'я запостить полностью?

Кстати еще вопрос - когда его меняешь, то с какого момента начинают действовать новые параметры?
18 окт 06, 13:25    [3276394]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
И еще просьба - а можете запостить еще шапку самой процедуры-функции. Интересует как описаны у нее параметры, сколько их...
18 окт 06, 13:32    [3276446]     Ответить | Цитировать Сообщить модератору
 Re: Вызов хранимых процедур MS SQL через Gateway  [new]
raw
Member

Откуда:
Сообщений: 133
#
# HS init parameters
#
HS_FDS_CONNECT_INFO="SERVER=SERVERNAME;DATABASE=BUH2"
HS_FDS_CONNECT_PROPERTIES="timeout='120'" 
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_DEFAULT_OWNER=dbo
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
HS_FDS_PROC_IS_FUNC=TRUE
HS_FDS_TRANSACTION_MODEL=TWO_PHASE_COMMIT
# HS_FDS_NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251[/quot]

ALTER  procedure _1sp__1SCONST_TLock AS
set nocount on declare @i integer select @i=1 from _1SCONST(TABLOCK HOLDLOCK) where 0=1
18 окт 06, 14:54    [3277040]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить