Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Oracle RefCursor и .Net OracleReader

263
06 марта 2009 года
koltaviy
816 / / 16.12.2004
Вот этот код без проблем выполняется в SQL Script.
Код:
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 # пишу:
Код:
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 не является хранимой процедурой, либо имя не зарегистрировано".
Что не так делаю, исходя из начального скрипта??
412
10 марта 2009 года
grgdvo
323 / / 04.07.2007
p_bs - это что? Package? Owner?

если это другая схема (овнер), может прав доступа нету?
а отличие идет в разнице создания коннекта в SQL Script и в программе.
Alias'ы используешь?
263
10 марта 2009 года
koltaviy
816 / / 16.12.2004
Цитата: grgdvo
p_bs - это что? Package? Owner?
...


Package.

Цитата: grgdvo

...
а отличие идет в разнице создания коннекта в SQL Script и в программе.
...


Как то размыто.. Цепляюсь-то к одному серверу.. Другие хранимые процедуры выполняю из кода без проблем. Проблемы именно с этой. Я так предполагаю, что проблемы именно с сущностями. Т.е., к примеру, данная конструкция Oracle не является хранимой процедурой. о_О

Цитата: grgdvo

Alias'ы используешь?


Про какие alias'ы идёт речь?? :

Цитата: 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)
)
)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог