Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL%ROWCOUNT / 22 сообщений из 22, страница 1 из 1
24.10.2017, 11:45
    #39540944
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Подайте идею, почему сабж в одних и тех же sql командах в одной большой многоблочной процедуре дает 0, а в тех же командах, но в урезанной процедуре, из которой убрали все независимые блоки и оставили только один блок, дает реальное значение. Код не меняется. Остается только один блок.
По поиску ничего не нашел. Примеры команд:

INSERT
INTO WH1.ARC_ORDERS(OrderKey)
SELECT o.OrderKey
FROM WH1.ORDERS o
WHERE o.RequestedShipDate < v_arch_date
AND o.Type in ('11', '12');
rcnt:= SQL%ROWCOUNT;

DELETE WH1.ORDERS o
WHERE o.OrderKey in (SELECT a.OrderKey
FROM WH1.ARC_ORDERS a);
rcnt:= SQL%ROWCOUNT;

заранее благодарен за помощь
...
Рейтинг: 0 / 0
24.10.2017, 11:58
    #39540950
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtP,

delete часом в автономке не делают?

ps
плюс права "пользователей"

.....
stax
...
Рейтинг: 0 / 0
24.10.2017, 12:00
    #39540952
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPпочему сабж в одних и тех же sql командах в одной большой многоблочной процедуре дает 0 SQL%ROWCOUNT содержит "правильное" до следующего использования неявного курсора SQL% в Static SQL или EXECUTE IMMEDIATE.
...
Рейтинг: 0 / 0
24.10.2017, 12:06
    #39540957
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Stax, запускает один и тот же человек в PLDev
...
Рейтинг: 0 / 0
24.10.2017, 12:08
    #39540958
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Elic, код не меняется. Блок begin.. end сначала находится в большой процедуре, потом в маленькой, где других блоков нет
...
Рейтинг: 0 / 0
24.10.2017, 12:11
    #39540963
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPElic, код не меняется. Блок begin.. end сначала находится в большой процедуре, потом в маленькой, где других блоков нет
Ссылку на "как задавать вопросы" дать или мсье справится сам?
...
Рейтинг: 0 / 0
24.10.2017, 12:11
    #39540965
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Блок состоит из последовательности вставок и удалений, после каждой операции в лог пишется SQL%ROWCOUNT. В одном случае это всегда нули, в другом - реальные значения.
...
Рейтинг: 0 / 0
24.10.2017, 12:14
    #39540967
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPв лог пишетсяСбрасывать значение может сама запись в лог.
И да: http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
24.10.2017, 12:24
    #39540978
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPStax, запускает один и тот же человек в PLDev

я имел ввиду параметр процедуры AUTHID и права

зы
я так понимаю SQL%ROWCOUNT используeтся сразу после оператора

еще может быть, видимость rcnt, может где-то переменную переопределяют

.....
stax
...
Рейтинг: 0 / 0
24.10.2017, 12:24
    #39540980
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Elic, по указанной ссылке нашел ещё и такие советы:
Как давать хорошие ответы

Будьте великодушны. Связанный с проблемой стресс может делать невежливыми или глупыми людей, которые таковыми не являются.

Хотя простой ответ RTFM бывает оправдан, когда дается просто лентяю, ссылка на документацию (даже если это набор ключевых слов для поиска в Google) все же лучше.
...
Рейтинг: 0 / 0
24.10.2017, 12:25
    #39540981
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Stax, без переменной тот же результат
...
Рейтинг: 0 / 0
24.10.2017, 12:34
    #39540985
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPнашел ещё и такие советы:Чудак, тебе это помогает?
...
Рейтинг: 0 / 0
24.10.2017, 12:45
    #39540995
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPStax, без переменной тот же результат

в большой процедуре/блоке часом нет
exception when no_data_found then ...
он сбросит SQL%ROWCOUNT в 0,
поетому я переспросил сразу ли присваеваете SQL%ROWCOUNT пользовательской переменной

мож програмка логирования плевала на rcnt и пользует SQL%ROWCOUNT

надо искать

хотя что-то у меня смутно в башке вертится, что ког-да то я тож был начудил с SQL%ROWCOUNT, но не могу припомнить

.....
stax
...
Рейтинг: 0 / 0
24.10.2017, 12:50
    #39540996
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtP,

о вспомнил, вызывал какой-то системний dbms_xxx и он сбрасывал SQL%ROWCOUNT

поетому для себя решил, сразу переприсваиваю

.....
stax
...
Рейтинг: 0 / 0
24.10.2017, 12:54
    #39541000
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Stax, предварительно, перед запуском процедуры, я удостоверился селектом, что данные по данному условию есть и вставлять и удалять есть чего. После прохождения процедуры данные модифицировались - вставились и удалились, это я тоже проверил. Поэтому exception when no_data_found then не должен сбрасывать SQL%ROWCOUNT в 0. И потом, я уже сказал, что я полностью убрал использование переменной и использовал сразу SQL%ROWCOUNT непосредственно после команды. Данные были, SQL%ROWCOUNT не должен был быть нулем.
...
Рейтинг: 0 / 0
24.10.2017, 13:06
    #39541008
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtP,

непосредственно используете где/как? dbms_output.put_line(SQL%ROWCOUNT)?

....
stax
...
Рейтинг: 0 / 0
24.10.2017, 13:11
    #39541013
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Stax,
сразу непосредственно после sql-команды вызывается процедура записи в лог, которой SQL%ROWCOUNT передается в качестве входного параметра в виде строкового значения.
...
Рейтинг: 0 / 0
24.10.2017, 13:13
    #39541017
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPсразу непосредственно после sql-команды вызывается процедура записи в лог,Продолжай описывать свой секретный код вербально, это так помогает тебе решать твои проблемы.
...
Рейтинг: 0 / 0
24.10.2017, 13:54
    #39541059
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
а вот еще оффтопик:
обязательно ли суммировать SQL%BULK_ROWCOUNT(i) при работе с FORALL чтобы посчитать обработанные записи, или это же значение будет в SQL%ROWCOUNT ?
только не смейтесь.
...
Рейтинг: 0 / 0
24.10.2017, 14:11
    #39541071
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
--Eugene--будет в SQL%ROWCOUNT
...
Рейтинг: 0 / 0
24.10.2017, 14:17
    #39541081
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
DmtPStax,
сразу непосредственно после sql-команды вызывается процедура записи в лог, которой SQL%ROWCOUNT передается в качестве входного параметра в виде строкового значения.
я об етом и говорю, мож запутанно, но
напр в формсе
в депт 4 гарантовано записи

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare
 rcnt int;
 procedure p_log(p varchar2) is
 begin
 	 message(p);
 end;
 begin
 	 delete dept;
 	 rcnt:=sql%rowcount;
 	 p_log(to_char(sysdate)||' '||sql%rowcount||' ('||rcnt||')');
 	 rollback;
 end;
 



message выдаст 24.10.17 1 (4)
не 0, но и не 4

я о чем, мож процедура логирования (большой блок) сбивает sql%rowcount неявным курсором

.....
stax
...
Рейтинг: 0 / 0
24.10.2017, 14:35
    #39541099
DmtP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL%ROWCOUNT
Stax,
спасибо за советы. Проблему решил, она была не в кодинге, а в логике большой процедуры. Когда процедура обрезалась, ошибка устранялась.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL%ROWCOUNT / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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