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

Popular posts from this blog

apache - PHP Soap issue while content length is larger -

asynchronous - Python asyncio task got bad yield -

javascript - Complete OpenIDConnect auth when requesting via Ajax -