database - Pl/Sql Oracle Function in a procedure -
i need make procedure needs update situation of student, need use function returns 'a' approved students, , 'r' not approved. after need update field "situation" 'a' or 'r' returned function. have function, don't have idea how make procedure. here goes code of function:
create or replace function check_grade(grade in number, frequency in number) return varchar2 result varchar2(1) default ''; begin if (grade >= 6) , (frequency >= 0.75) resultado := 'a'; else resultado := 'r'; end if; return result; end;
i think on complicating things. in pure sql rather using pl/sql function , procedure.
you use case expression, example:
test 1
sql> select 2 case 3 when &grade >=6 4 , &frequency>=0.75 5 'a' 6 else 'r' 7 end 8 dual; enter value grade: 10 old 3: when &grade >=6 new 3: when 10 >=6 enter value frequency: 1 old 4: , &frequency>=0.75 new 4: , 1>=0.75 c -
test 2
sql> select 2 case 3 when &grade >=6 4 , &frequency>=0.75 5 'a' 6 else 'r' 7 end 8 dual; enter value grade: 1 old 3: when &grade >=6 new 3: when 1 >=6 enter value frequency: 0.5 old 4: , &frequency>=0.75 new 4: , 0.5>=0.75 c - r
so, using same logic in update statement:
update table_name set situation = ( case when &grade >=6 , &frequency>=0.75 'a' else 'r' end) situation not null;
update op wants in procedure:
create or replace procedure pr_update begin update table_name set situation = check_grade(grade, frequency); end; /
in above procedure, put actual table_name in update statement. grade , frequency considered column names of table.
Comments
Post a Comment