Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры с DML / 3 сообщений из 3, страница 1 из 1
25.06.2018, 14:14
    #39665348
G.Collector
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры с DML
Коллеги, добрый день. Прошу помощи, ибо сам не Ораклоид.

Есть процедура, допустим test.

На вызов вида:

Код: plsql
1.
2.
3.
4.
select
   1 as attr1,
   test(1, 2, 3) as attr2
from dual



ругается тем, что внутри test происходят операции DML и падает с ошибкой.

Как можно получить подобный атрибутивный состав (attr1, attr2), чтобы это вызывалось из Java и можно было получить курсор / ResultSet?

Oracle 12

Спасибо.
...
Рейтинг: 0 / 0
25.06.2018, 14:36
    #39665369
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры с DML
G.Collectorчтобы это вызывалось из Java и можно было получить курсор / ResultSet?Сделай наследника от ResultSet, который возвращает один next(), значение 1 для getXXX(1) и результат вызова test(1, 2, 3) для getXXX(2).
...
Рейтинг: 0 / 0
25.06.2018, 15:10
    #39665390
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов хранимой процедуры с DML
G.CollectorНа вызов вида:

Код: plsql
1.
2.
3.
4.
select
   1 as attr1,
   test(1, 2, 3) as attr2
from dual


ругается тем, что внутри test происходят операции DML и падает с ошибкой.

В контексте select запрещены какие-либо изменения (см. pragma wnds, wnps).
Но если очень хочется, то можно (хотя я бы не советовал) - для этого test(1,2,3) должна выполняться в автономной транзакции.
Сразу обращаю внимание, что работающая в рамках автономной транзакции в контексте select функция должна быть очень тщательно спроектирована как на предмет межпроцессного взаимодействия (конкуренции с потенциально сотнями параллельных подобных select), так и реентерантности (функция в select-list может вызываться несколько чаще, чем можно себе представить без знания некоторых деталей, на основании одного только здравого смысла).
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вызов хранимой процедуры с DML / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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