首页 文章

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

提问于
浏览
2

我需要在oracle表中为我的select查询获取第一列,即来自TABLE的SELECT FIRST_COLUMN . 我怎样才能做到这一点?我无法访问SYS表,即无法访问user_tab_columns这样的表 . 有可能这样做吗?

2 回答

  • 3

    您始终可以访问USER_TAB_COLUMNS .

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

  • 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交谈可能更简单

相关问题