How to know the column name used in query? [message #392045] |
Mon, 16 March 2009 03:22  |
mm_kanish05
Messages: 493 Registered: January 2007 Location: Chennai
|
Senior Member |

|
|
Hi,
I want to know the column names used in queries.
Sample
Select emplcode,emplname from emplmast
emplcode
emplname
Is any function availble in oracle. Otherwise we need create our own procedure/functions.
kanish
|
|
|
|
|
|
|
Re: How to know the column name used in query? [message #392277 is a reply to message #392273] |
Tue, 17 March 2009 04:54   |
JRowbottom
Messages: 5933 Registered: June 2006 Location: Sunny North Yorkshire, ho...
|
Senior Member |
|
|
That solution does rather rely on knowing what the actual SQL that was used was.
And, if you know that, you'd be better off rewriting the query like this:Select REPLACE(REPLACE(SQL_TEXT,'Select',' '),' from emplmast','')
from (select 'Select emplcode,emplname from emplmast' sql_text
from dual);
|
|
|
Re: How to know the column name used in query? [message #392278 is a reply to message #392277] |
Tue, 17 March 2009 05:00   |
JRowbottom
Messages: 5933 Registered: June 2006 Location: Sunny North Yorkshire, ho...
|
Senior Member |
|
|
Here is theSQL to return the text of the previous SQL that your session executed - You could parse the column names out of this if you like:select sid
,ses.prev_sql_id
,sq.sql_text
from v$session ses
,v$sql sq
WHERE ses.audsid = SYS_CONTEXT('userenv','sessionid')
and sq.sql_id = ses.prev_sql_id;
|
|
|
|
|
|
Re: How to know the column name used in query? [message #392424 is a reply to message #392045] |
Tue, 17 March 2009 23:38   |
mm_kanish05
Messages: 493 Registered: January 2007 Location: Chennai
|
Senior Member |

|
|
Just i write a function.
Create or Replace Function Get_Sql_Col_cnt(Qry Varchar2) return number is
cur integer := dbms_sql.open_cursor;
desctbl dbms_sql.desc_tab;
cnt integer;
Begin
dbms_Sql.parse(cur,qry,dbms_sql.native);
dbms_Sql.describe_columns(cur,cnt,desctbl);
return(cnt);
End;
Create or Replace Function Get_Sql_col_Name(Qry varchar2, Row Number) return Varchar2 is
Cur Integer := dbms_sql.Open_Cursor;
desctbl dbms_Sql.desc_tab;
Cnt integer;
Begin
dbms_sql.parse(cur,Qry,dbms_sql.native);
dbms_Sql.describe_columns(cur,cnt,desctbl);
return(desctbl(Row).col_name);
End;
kanish
|
|
|
|
|