连接一个oracle数据库,DBA权限用户(Admin)给我分配了一个用户(Guest),并将DBA用户下的部分表的访问权限给我(guest,此权限是只读的)了,然后我通过这个用户名(guest)连接上了数据库,并可以通过SELECT table_name FROM USER_TAB_PRIVS 语句找到我能够访问的表,但是如果获取每个表的字段?因为我想建数据字典,所以需要通过语句来获取我能够访问的表的字段,请各位大虾指教,谢谢!

解决方案 »

  1.   

    SELECT COLUMN_NAME,DATA_TYPE,COLUMN_ID FROM USER_TAB_COLUMNS,这个语句只有登陆用户拥有表的时候才有用啊!应该用什么语句取字段啊!
      

  2.   

    select * from user_tab_columns t where t.table_name='...'
      

  3.   

    上面的大哥,关键是我目前的这个guest用户下面根本没有表啊。他只能访问ADMIN下的表啊。且是通过前缀才能访问,以guset登陆后,以select * from admin. 表名才能访问表
      

  4.   

    赫赫,那你怎么访问到USER_TAB_PRIVS 的。赫赫。
    让你的DBA把USER_TAB_COLUMNS的只读权限给你就是了。反正USER_TAB_PRIVS都给你了。赫赫。
      

  5.   

    通过 表空间.表名方式来访问,有什么问题吗?可以访问就可以了呀。
    只要你可以访问你的admin.USER_TAB_COLUMNS,建立一个同义词就是了。一样可以不加表空间名来用。