Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Выполнение оракловой хранимой процедуры на стороне 1С / 2 сообщений из 2, страница 1 из 1
22.11.2011, 13:16
    #37538471
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение оракловой хранимой процедуры на стороне 1С
Всем дорого времени суток коллеги!

С 1С не работал, поэтому хочу спросить у вас как выполнить данную процедуру, понятно что лучше использовать функцию, просто впоследствии это будет процедура.

На стороне оракла создаю процедуру:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> 
SQL> CREATE OR REPLACE PROCEDURE SP_MYPROC(ORGID   IN NUMBER,
   2                                         ORGNAME OUT VARCHAR2) AS
   3   BEGIN
   4     FOR CUR IN (SELECT V.NAME
   5                   FROM HR.HR_ALL_ORGANIZATION_UNITS V
   6                  WHERE V.ORGANIZATION_ID = ORGID)
   7     LOOP
   8       ORGNAME := CUR.NAME;
   9       --    DBMS_OUTPUT.put_line(CUR.NAME);
  10     END LOOP;
  11     RETURN;
  12   END;
  13   /
 
Procedure created
 
SQL> 

Далее проверяю ее работоспособность:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> DECLARE
   2     V_RES VARCHAR2( 40 );
   3   BEGIN
   4     SP_MYPROC( 84 ,
   5               V_RES);
   6     DBMS_OUTPUT.PUT_LINE(V_RES);
   7   END;
   8   /
 
PL/SQL procedure successfully completed
 
SQL> 

На стороне 1С написано:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// Имя хранимой процедуры
  СоединениеТекущее.Команда.CommandText = "sp_MyProc";
  
  СоединениеТекущее.Команда.CommandType =  8 ;
  //СоединениеТекущее.NamedParameters     = Истина;  
  OrgID = Новый COMОбъект("ADODB.Parameter"); 
  OrgID = СоединениеТекущее.Команда.CreateParameter("OrgID",  3 ,  1 ,  32 );
  
  // добавить параметры
  СоединениеТекущее.Команда.Parameters.Append(OrgID);
  СоединениеТекущее.Команда.Parameters("OrgID").Value = "84";
  СоединениеТекущее.Команда.Prepared = Истина; 
    
  // ПротоколированиеЗапрос();
  Выборка = СоединениеТекущее.Команда.Execute();

но она не выполняется. что надо дописать, чтобы она успешно выполнилась ?
Всем спасибо за внимание.
...
Рейтинг: 0 / 0
22.11.2011, 13:50
    #37538556
K790
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выполнение оракловой хранимой процедуры на стороне 1С
K790,

проблема в
Код: plaintext
СоединениеТекущее.Команда.CommandType =  8 ;
должно быть 4.
Всем спасибо :)
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Выполнение оракловой хранимой процедуры на стороне 1С / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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