powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Remote procedure (OUT parameter)
18 сообщений из 18, страница 1 из 1
Remote procedure (OUT parameter)
    #33488948
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем необходимо получить значение OUT параметра у
remote procedure (Оракловая процедура)

Код: plaintext
1.
2.
3.
4.
5.
ALTER PROCEDURE "DBA"."P_DOCTYPES_BASE_INSERT"(
in nCOMPANY numeric,
in nCRN numeric,
in sDOCCODE char( 25 ),
in sDOCNAME char( 160 ),
out nRN double) at 'SLVZ;;PARUS;P_DOCTYPES_BASE_INSERT'

Запускаю ее так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER PROCEDURE "DBA"."P_TEST"
(  )

BEGIN
DECLARE ll double;

CALL "DBA"."P_DOCTYPES_BASE_INSERT"
( 1663001 , 46156001 ,'111','111-222-333',ll);
commit;
Message ll;

END
В принципе все ОК, но вот OUT параметр не выводит, т.е. он всегда = 0

В чем может быть проблема?
Весь хелп перелопатили и ничего не нашли
единственное ограничение (в хелпе) что в out параметре нельзя использовать numeric или decimal
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489150
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо при вызове процедуты также указывать , что вы хотите получить значение этого параметра. Это указывается с помощью того же ключевого слова output, но в вызове.

единственное ограничение (в хелпе) что в out параметре нельзя использовать numeric или decimal

Да, если это только ASE, а не ASA.
Но похоже это все же ASA.
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489218
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это действительно ASA 9.0.2

Код: plaintext
NUMERIC and DECIMAL data types are allowed for IN parameters, but not for OUT or INOUT parameters.
- это из хелпа по ASA!

И все же можно пример, где надо написать этот самый OUTPUT
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489450
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ужели ни кто не сталкивался с текущей проблемой?

===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489609
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОЧ. НУЖНА ПОМОЩЬ!!!
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489730
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPROИ все же можно пример, где надо написать этот самый OUTPUT
Синтаксис вызова процедуры посмотрите ...
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33489751
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема была решена заменой ODBC
вместо драйвера
iAnywhere Solution 9 - Oracle Write Protocol
использовал
Oracle In ORAHome92

И все ОК!

===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33490478
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPROПроблема была решена заменой ODBC
Ну вот, не успел... Только хотел посоветовать поискать другой ODBC драйвер :)
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33498846
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла очередная проблема с REMOTE PROCEDURE

Необходимо выполнить процедуру у которой тип in параметра date (date это в ORACLE)

в хелпе ASA по написано
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Data types for remote procedures 
The following data types are allowed for RPC parameters. Other data types are disallowed:
[ UNSIGNED ] SMALLINT
[ UNSIGNED ] INT
[ UNSIGNED ] BIGINT
TINYINT
REAL
DOUBLE
CHAR
BIT

NUMERIC and DECIMAL data types are allowed for IN parameters, but not for OUT or INOUT parameters

Вопрос, как передать в процедуру параметр с типом date?
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33498871
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CHARом
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33498895
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно немного разжевать?

т.е. сделал я сейчас
Код: plaintext
ALTER PROCEDURE "DBA"."P_ASA_TEST"(in rn numeric,in dDate char( 10 )) at 'SLVZ_ORAHome92;;PARUS;P_ASA_TEST'

вызываю
Код: plaintext
CALL "DBA"."P_ASA_TEST"( 1 , '2005-01-01');

И все одно, ошибка!
Код: plaintext
...literal does not match format string. ...

Формат уже вроде весь перепровал, сообщение одно и тоже,
толко при формате '01.01.2005' или '01/01/2005' сообщение следующего содержания
Код: plaintext
... not a valid month ... 
т.е. уже где то рядом (наверно)
есть еще предложения
===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33498965
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в Оракле при подстановке значения переданного параметра делаете to_date(p_inparam, 'yyyy-mm-dd') ?
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499020
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndynА в Оракле при подстановке значения переданного параметра делаете to_date(p_inparam, 'yyyy-mm-dd') ?
А вообщето надо не то как вывести ораклу дату а передать параметр, ругается то при передаче!

Уважаемые, оч. срочно надо, уже 2 дня об стенку и бестолку!!!!
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499104
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DIGITALPROА вообщето надо не то как вывести ораклу дату а передать параметр, ругается то при передаче! Если в вашей оракловой процедуре все закомментарить, все равно продолжает ругаться? Кстати, а у Оракловой процедуры параметр под дату какого типа, Date?
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499168
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andyn Если в вашей оракловой процедуре все закомментарить, все равно продолжает ругаться? Кстати, а у Оракловой процедуры параметр под дату какого типа, Date?

Да, в оракловой процедуре тип Date
Все закомментировали в оракле, и все равно выдает ошибку(и) приведенные выше
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499192
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно вариантов наверно всего два:

1. У Оракловой процедуры сделать типа параметра под дату - строковый и потом внутри преобразовывать через to_date()

2. Настроить по умолчанию формат даты в Оракле на yyyy-mm-dd, либо сделать еще одну прокси-процедуру для установки формата даты для сессии, которая создается при вызове прокси-процедур и вызывать ее первой. В этой процедуре делать что-то вроде
Код: plaintext
1.
2.
begin
execute immediate 'alter session set nls_date_format = "yyyy-mm-dd hh24:mi:ss" ';
end;

Скорее всего ошибка происходит при попытке Оракла сконвертировать вашу строку в дату, т.к. у Оракла, в отличие от ASA, с этим есть проблемы. Мы, например, всегда явно указываем формат строки содержащей дату, даже если он совпадает с установленным по умолчанию для сессии, чтобы избежать ошибок типа "not a valid month" или чтобы не получить не ту дату.
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499294
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за варианты!, но в оракле уже написаны некие стандартные процедуры которые собственно говоря не хотелось бы плодить, больше интересен вариант решения проблемы со стороны ASA.
...
Рейтинг: 0 / 0
Remote procedure (OUT parameter)
    #33499430
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)

Проблема решена следующим
Код: plaintext
ALTER PROCEDURE "DBA"."P_ASA_TEST"(in rn numeric,in dDate char( 20 )) at 'SLVZ_ORAHome92;;PARUS;P_ASA_TEST'
где dDate в оракте тип = date

При вызове
Код: plaintext
CALL "DBA"."P_ASA_TEST"( 1 , convert (char( 20 ), date('2005-03-31'),  106 ));

Все дело оказалось в формате!!!

===============================
PB 9.0.2 (7534) ASA 9.0.2 (2451)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Remote procedure (OUT parameter)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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