PL / SQL процедура для обновления всего поля путем добавления 3-х отметок - PullRequest
0 голосов
/ 30 марта 2020

Я создал отношение под названием marks , которое содержит следующие поля

create table marks (
    rollno numeric(5),
    Name varchar2(10),
    mark1 numeric(3),
    mark2 numeric(3),
    mark3 numeric(3),
    total numeric(3)
);

Я вставил несколько строк в отношение:

Insert into marks (rollno, Name, mark1, mark2, mark3)
    values(1, 'Caesar', 85, 90, 89);
Insert into marks (rollno, Name, mark1, mark2, mark3)
    values(2, 'Abi', 80, 87, 88);
Insert into marks(rollno, Name, mark1, mark2, mark3)
    values(3, 'Aish', 70, 89, 75);

Сейчас Я хочу создать процедуру, которая обновляет поле total , добавляя 3 отметки. Не могли бы вы помочь мне с этим?

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Используйте виртуальный столбец:

create table marks (
    rollno numeric(5),
    Name varchar2(10),
    mark1 numeric(3),
    mark2 numeric(3),
    mark3 numeric(3),    
    total numeric(3) generated always as (mark1 + mark2 + mark3)
);

Тогда это часть таблицы, и вам не нужно выполнять какую-либо работу, чтобы поддерживать ее в актуальном состоянии.

0 голосов
/ 30 марта 2020
create or replace procedure find_total
as
begin
update marks set total=mark1+mark2+mark3;
dbms_output.put_line('Total updated');
end find_total;


begin
find_total;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...