powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle RefCursor и .Net OracleReader
2 сообщений из 2, страница 1 из 1
Oracle RefCursor и .Net OracleReader
    #35861460
koltaviy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Цепляюсь к удалённому серверу Oracle. Установленный клиент: ODTwithODAC1110621.

Вот этот скрипт без проблем выполняется в SQL Script.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SET SERVEROUTPUT ON 
 
DECLARE 
n number; 
dst_addr varchar2(11); 
dat date; 
sdat date; 
attempt number; 
finaldate date; 
msgstate number; 
state varchar2(64); 
 
ref1 sys_refcursor; 
 
BEGIN 
ref1 := p_bs.f_getallStatus(sysdate-5,sysdate); 
 
LOOP 
FETCH ref1 INTO n, dst_addr, dat, sdat, attempt, finaldate, msgstate, state; 
EXIT WHEN ref1%NOTFOUND; 
dbms_output.put_line('n='||n||', msgstate='||TO_CHAR(msgstate)||', state='||state); 
END LOOP; 
 
CLOSE ref1; 
END;

На C # пишу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
           using (OracleConnection conn = new OracleConnection("data source=usa;user id=qwerty;password=ytrewq"))
            {
                try
                {
                    conn.Open();


                    OracleCommand cmd = new OracleCommand("p_bs.f_getallStatus", conn);
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@dateFrom", DateTime.Now.AddDays(-3)).Direction = ParameterDirection.Input;
                    cmd.Parameters.Add("@dateTo", DateTime.Now).Direction = ParameterDirection.Input;
                    OracleDataReader dr = cmd.ExecuteReader();

                    while (dr.Read())              
                        Console.WriteLine(string.Format("ID = {0}, Status = {1}", (string)dr["n"], (string)dr["msgstate"]));

                }
                catch (OracleException ex)
                {
                    return;
                }
                finally
                {
                    conn.Close();
                }
            }
При выполнении выпадает Оракловская ошибка аля "p_bs.f_getallStatus не является хранимой процедурой, либо имя не зарегистрировано".
Что не так делаю, исходя из начального скрипта??

Доп. информация:
1) p_bs - Package
2) Другие хранимые процедуры из p_bs выполняются без проблем
3)
tnsnames.ora
usa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = asd.ru)(PORT = 2484))
(ADDRESS = (PROTOCOL = TCP)(HOST = asd.off.com)(PORT = 1521))
)
(SOURCE_ROUTE = yes)
(CONNECT_DATA =
(SERVICE_NAME = asd.off.com)
)
)
...
Рейтинг: 0 / 0
Oracle RefCursor и .Net OracleReader
    #35873700
from_kiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
судя по всему p_bs.f_getallStatus это функция, стало быть должен быть исходящий параметр.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Oracle RefCursor и .Net OracleReader
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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