here we will provide a dynamic Function to get any description of any table by only passing the table name , The ID column name , The Description " the value that you want to get" , The unique value for the id
-- you can modify this function to just take the table name and the id value , as you can define the id column in the database and also the description
CREATE OR REPLACE FUNCTION GET_DN(P_TABLE_NAME VARCHAR2,P_CODE VARCHAR2,P_NAME VARCHAR2,P_CODE_VALUE VARCHAR2 )RETURN VARCHAR2 IS
V_sQL VARCHAR2(500);
CURID NUMBER;
V_CODE varchar2(50);
V_NAME varchar2(100);
v_count number;
CURID NUMBER;
V_CODE varchar2(50);
V_NAME varchar2(100);
v_count number;
BEGIN
v_sql:='select '||P_CODE ||' ,'||P_NAME ||' from '||P_TABLE_NAME || ' WHERE '||P_CODE||'='||''''||P_CODE_VALUE||'''';
curid:=dbms_Sql.open_cursor;
dbms_sql.parse(curid,v_sql,dbms_sql.native);
v_count:=DBMS_SQL.execute(curid);
--return v_count;
dbms_sql.define_column(curid,1,v_CODE,50);
dbms_sql.define_column(curid,2,v_NAME,100);
dbms_sql.parse(curid,v_sql,dbms_sql.native);
v_count:=DBMS_SQL.execute(curid);
--return v_count;
dbms_sql.define_column(curid,1,v_CODE,50);
dbms_sql.define_column(curid,2,v_NAME,100);
if DBMS_SQL.fetch_rows(curid)>0 then
dbms_sql.column_value(curid,1,v_CODE);
dbms_sql.column_value(curid,2,v_NAME);
DBMS_OUTPUT.PUT(V_NAME);
dbms_sql.close_cursor(curid);
else
v_name:= 'No Rows';
END IF ;
RETURN v_NAME ;
---return v_sql;
END;
dbms_sql.column_value(curid,1,v_CODE);
dbms_sql.column_value(curid,2,v_NAME);
DBMS_OUTPUT.PUT(V_NAME);
dbms_sql.close_cursor(curid);
else
v_name:= 'No Rows';
END IF ;
RETURN v_NAME ;
---return v_sql;
END;