powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
7 сообщений из 7, страница 1 из 1
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35756933
_Marisha_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Я разрабатываю отчет Crystal Reports c источником данных - хранимой процедурой (сервер Oracle 10, доступ через ODBC-драйвер). Процедура вставляет данные в таблицу и возвращает их в Кристалл в виде ссылочного курсора. Внутри Оракл все работает нормально, а Кристалл выдает ошибку ORA-01456 - вставка/удаение/обновление данных невозможны внутри READ-ONLY транзакции. Может, кто-то сталкивался с чем-то подобным?
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35756967
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если используется Oracle ODBC-драйвер, то в настройках соединения можно указать "Read-Only Connection". Либо в самом соединении перед вызовом процедуры установить атрибут транзакции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SQL> create table TEST (v varchar2( 1 ));

Table created.

SQL> set transaction read only;

Transaction set.

SQL> insert into TEST (v) values ( 1 );
insert into TEST (v) values ( 1 )
            *
ERROR at line  1 :
ORA- 01456 : may not perform insert/delete/update operation inside a READ ONLY transaction
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35757127
_Marisha_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что Кристалл настройку соединения производит с помощью мастера, я не могу даже заглянуть в строку соединения, чтобы посмотреть, какие свойства транзакции он выставляет. Либо это Оракл для этого сеанса дает опцию read-only. Не знаю, где посмотреть в Оракле, поскольку не являюсь администратором Оракл, и ничего похожего ни в Интернете, ни в доступной мне литературе найти не могу...Если не производить операций вставки/удаления данных в процедуре, то данные возвращаются нормально. Но мне именно надо заполнить временную таблицу,поскольку в процедуре отрабатывает 5 sql-запросов!В противном случае придется внутри Оракла формировать огромную таблицу по всем подразделениям и временным интервалам, и по расписанию обновлять в ней данные для моего отчета. Это очень большая нагрузка на сервер :(
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35757259
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли обращаться к Oracle не через ODBC, а напрямую через ораклового клиента?
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35757301
_Marisha_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет,я ограничена ODBC-драйвером. Оракловый драйвер не поддерживается библиотекой приложения, для которого я делаю отчет :(
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35757385
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Marisha_ wrote at 14.01.2009 14:38:


> Нет,я ограничена ODBC-драйвером. Оракловый драйвер не поддерживается
> библиотекой приложения, для которого я делаю отчет :(


Попробуй может оформить изменение данных через oracle-процедуру c автономной транзакцией, вдруг он
ее разрешит.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create or replace package DEMO_PKG as
   procedure REF_CURSOR (p_cursor in out sys_refcursor);
end;
/

create or replace package body DEMO_PKG as
   procedure INSERT_TEST (p_value varchar2) as
     pragma autonomous_transaction;
   begin
     insert into TEST_TBL (m_name) values (p_value);
     commit;
   end;

   procedure REF_CURSOR (p_cursor in out sys_refcursor) is
   begin
     INSERT_TEST ('is ok!');
     open p_cursor for
       select * from test_tbl;
   end;
end;
/

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
    #35757712
_Marisha_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, сработало!!!
Я уже пробовала с pragma autonomous_transaction, но что-то у меня не получалось.
Благодарю за помощь!!!!:):):)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ошибка вызова хранимой процедуры Oracle в отчете Crystal Reports
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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