powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедура не пишет в таблицу строки
20 сообщений из 20, страница 1 из 1
Процедура не пишет в таблицу строки
    #40005449
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
В учебных целях написала такую процедуру, которая по идее должна писать из переменной в таблицу значения.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
create or replace procedure insert_err_logs is
reqid tbl%rowtype;
tbtype tbl1.type%type;
begin
  insert into v_test select id from tbl;
  for reqid in (select id from v_test)
  loop
    begin
    dbms_output.put_line('Current ID: ' || reqid.id);
      select type into tbtype from tbl1 where id = reqid.id and type = 'refill';
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
      insert into tbl2 (id, type, col) select * from tbl1 where id = reqid.id and type = 'withdrawal';
      end;
    end loop;
    execute immediate 'truncate table v_test';
end;



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> select * from tbl1;

        ID TYPE                 COL
---------- -------------------- ------------------------------
       123 withdraw             first row
       223 withdraw             second row
       332 refill               third row
       432 refill               fourth row
       532 refill               fifth row
       634 production           sixth row
       734 production           seventh row
       332 withdraw             thirdrow_
       432 withdraw             fourthrow_
       532 withdraw             fifthrow_

10 rows selected



Прошу сильно не ругать, так как только учусь писать процедуры :)
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005454
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOnaПрошу сильно не ругать, так как только учусь писать процедуры :)

Как раз поэтому-то можно и нужно ругать. Это при реальной работе можно за такой говнокод
молча уволить...

Вообще непонятно что Вы в этой процедуре пытаетесь сделать. Хаотичное нагромождение
бессмысленного кода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005458
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOna,

v_test Вам нужен для учебы?

ps
что в select id from tbl;?

.....
stax
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005461
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, да, v_test нужен для учёбы.
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005462
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOna
Stax, да, v_test нужен для учёбы.

что в select id from tbl;?

.....
stax
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005464
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, спасибо за критику!
В общих чертах, нужно перенести из одной таблицы в другую строки, где type = withdrawal.
Условие: id, которая имеет строку refill, строку withdrawal не надо переносить
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005467
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
SQL> select * from tbl;

ID LOC
---------- ----------
123 first row
223 second row
332 third row
432 fourth row
532 fifth row
634 sixth row
734 seventh ro

7 rows selected

в общем-то ничего особенного
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005470
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOnaнужно перенести из одной таблицы в другую строки, где type = withdrawal.

Код: sql
1.
insert into tbl2 select * from tbl1 t where type = 'withdrawal'



LenaOnaid, которая имеет строку refill, строку withdrawal не надо переносить

Код: sql
1.
and not exists (select * from tbl1 tt where t.id=tt.id and tt.type = 'refill'


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005473
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Код: plsql
1.
2.
3.
4.
SQL> select * from tbl2;

        ID TYPE                 COL                                 STATE
---------- -------------------- ------------------------------ ----------
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005475
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOna, предполагается, что студент изучает то, что написал.

'withdraw'

'withdrawal'
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005476
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит в реальной таблице для каждой строки с withdrawal есть соответствующая с refill.
Или Вы даже запрос скопипастить толком не смогли.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005477
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOna,

select * from tbl1 where id = reqid.id and type = 'withdraw al ';

нет в tbl1 строк с type = 'withdrawal';
вот и Процедура не пишет в таблицу строки


зы
reqid tbl%rowtype; и for reqid in ето РАЗНЫЕ (два) reqid;

....
stax
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005479
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

Как я проморгала этот момент! Вот спасибо, не увидела!
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005482
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, вот именно, что не для каждой строки.
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005484
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOnaКак я проморгала этот момент!

Очень просто: никогда не училась отлаживать запросы разбивая их на части и контролируя
результат каждого куска по отдельности. Это обычный результат изучения предмета методом тыка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005485
LenaOna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понимаю, что мой код далеко не идеальный, поэтому буду рада, если предложите варианты оптимизации :)
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005488
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LenaOna
Я понимаю, что мой код далеко не идеальный, поэтому буду рада, если предложите варианты оптимизации :)

тут два момента

1) научится писать процедуры (для такого переноса процедура не нужна)
2) перенести данные 22209137


....
stax
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005604
misterbean
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди, помогите решить, пожалуйста, тест по оракл

https://vk.com/doc276692157_570085231?hash=6da843d0b7fc672e6c&dl=10c7373eb9ea9a7494 - Файл с тестом.

ПДФ файл сюда не прикрепляется из размера
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005808
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
misterbean,

Посмотрите сюда, пожалуйста: https://dbfiddle.uk/

Это сайт, на котором можно исполнять команды SQL.
Он вам поможет самостоятельно решить (и возможно, понять) как минимум первый вопрос.

Также вам возможно будет интересна эта статья: https://paperpaper.ru/cheating/
...
Рейтинг: 0 / 0
Процедура не пишет в таблицу строки
    #40005832
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL
Посмотрите сюда, пожалуйста: https://dbfiddle.uk/
Это сайт, на котором можно исполнять команды SQL.


У оракла давно есть свой livesql.oracle.com , который подходит для подобных целей гораздо лучше.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Процедура не пишет в таблицу строки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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