sql - PLSQL SELECT INTO FROM parameter -


i created function should return max id table(parameter)

create or replace function getmaxid ( p_table in varchar2 ) return number v_maxid number(38);  begin  select max(id) v_maxid p_table;  return v_maxid;  end getmaxid  

however, keep getting error message "ora-00942: table or view not exist" on line:

select max(id) v_maxid p_table; 

like explained earlier, need use dynamic sql perform operation. in case, p_table variable. solution build string contain sql , dynamically execute 1 you've build query.

the example below uses, dual, table name arbitrary.

here you're looking for, take function outside of block, left can test it..

declare    function getmaxid (p_table in varchar2)       return number          v_maxid    number (38);       v_select   varchar2 (200);       cnt        sys_refcursor;    begin       v_select := 'select count(*) ' || p_table;        dbms_output.put_line (v_select);        execute immediate v_select v_maxid;        return v_maxid;    end getmaxid; begin    dbms_output.put_line (getmaxid ('dual')); end; 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -