powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL%ROWCOUNT
22 сообщений из 22, страница 1 из 1
SQL%ROWCOUNT
    #39540944
DmtP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подайте идею, почему сабж в одних и тех же 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
SQL%ROWCOUNT
    #39540950
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmtP,

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

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

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

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

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

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

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

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

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

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

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

надо искать

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

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

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

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

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

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

....
stax
...
Рейтинг: 0 / 0
SQL%ROWCOUNT
    #39541013
DmtP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
сразу непосредственно после sql-команды вызывается процедура записи в лог, которой SQL%ROWCOUNT передается в качестве входного параметра в виде строкового значения.
...
Рейтинг: 0 / 0
SQL%ROWCOUNT
    #39541017
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmtPсразу непосредственно после sql-команды вызывается процедура записи в лог,Продолжай описывать свой секретный код вербально, это так помогает тебе решать твои проблемы.
...
Рейтинг: 0 / 0
SQL%ROWCOUNT
    #39541059
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот еще оффтопик:
обязательно ли суммировать SQL%BULK_ROWCOUNT(i) при работе с FORALL чтобы посчитать обработанные записи, или это же значение будет в SQL%ROWCOUNT ?
только не смейтесь.
...
Рейтинг: 0 / 0
SQL%ROWCOUNT
    #39541071
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--будет в SQL%ROWCOUNT
...
Рейтинг: 0 / 0
SQL%ROWCOUNT
    #39541081
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
SQL%ROWCOUNT
    #39541099
DmtP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,
спасибо за советы. Проблему решил, она была не в кодинге, а в логике большой процедуры. Когда процедура обрезалась, ошибка устранялась.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL%ROWCOUNT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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