如何在oracle表中获得第一列?

时间:2010-12-16 12:22:49

标签: sql oracle

我需要在oracle表中为我的select查询获取第一列 即从TABLE中选择FIRST_COLUMN。我怎样才能做到这一点?我无法访问SYS表,即无法访问user_tab_columns这样的表。是否可以这样做?

2 个答案:

答案 0 :(得分:3)

您始终可以访问USER_TAB_COLUMNS。

如果DBA试图撤销它,会有太多东西中断。

答案 1 :(得分:1)

听起来你的访问权限非常有限。如果您的帐户可以访问DBMS_SQL,您可以尝试以下操作:

declare
lv_stat VARCHAR2(300) := 'SELECT * FROM tablename';
lv_cid integer;
lv_tab DBMS_SQL.DESC_TAB;
lv_cnt int;
begin
  lv_cid := DBMS_SQL.OPEN_CURSOR;
  DBMS_SQL.PARSE(lv_cid,lv_stat,DBMS_SQL.NATIVE);
  DBMS_SQL.DESCRIBE_COLUMNS(lv_cid,lv_cnt,lv_tab);
  DBMS_OUTPUT.PUT_LINE('First Column is '||lv_tab(1).col_name);
  DBMS_SQL.CLOSE_CURSOR(lv_cid);
  EXCEPTION
  when others then
  DBMS_SQL.CLOSE_CURSOR(lv_cid);
end;

这可以包装到PL / SQL函数中。与您的DBA交谈可能更简单