I am trying to use dynamic sql for getting the max value of any(I/P) column from any table(I/P) dynamically.
the following procedure compiles without any problems.But while executing it gives 'invalid column error'. Can You pl help me out??
CREATE OR REPLACE PROCEDURE GetMaxValue (
p_table_id VARCHAR2(50),
p_column_id VARCHAR2(50)) AS
v_CursorID INTEGER;
v_SelectStmt VARCHAR2(500);
v_Dummy INTEGER;
maxp VARCHAR2(500);
p_table VARCHAR2(50);
p_column VARCHAR2(50);
BEGIN
select ---- into p_column
from --- where --- = p_column_id;
select ---- into p_table
from --- where --- = p_table_id;
v_CursorID := DBMS_SQL.OPEN_CURSOR;
v_SelectStmt := 'SELECT max( '||p_column||' ) '||' FROM '||p_table;
DBMS_SQL.PARSE(v_CursorID, v_SelectStmt, DBMS_SQL.V7);
DBMS_SQL.DEFINE_COLUMN(v_CursorID,1,maxp,50);
v_Dummy := DBMS_SQL.EXECUTE(v_CursorID);
LOOP
IF DBMS_SQL.FETCH_ROWS(v_CursorID) = 0 THEN
EXIT;
END IF;
DBMS_SQL.COLUMN_VALUE(v_CursorID, 1, maxp);
DBMS_SQL.CLOSE_CURSOR(v_CursorID);
END LOOP;
UPDATE FIELD set
FLDMXMSTRNG = maxp
where STRCTRSYSTMNM = p_table and
FLDSYSTMNM = p_column
;
END;
/
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Click Here to Expand Forum to Full Width
Bookmarks