1. 苏葳的备忘录首页
  2. 数据库

Oracle存储过程中访问属于其它用户的表及系统表

oracle 系统表在用PL/SQL开发程序时,有时需要通过查询一些系统状态,实现一些功能。在plsql developer的交互Sql窗口中可访问sys用户的系统表,如sys.dba_users或sys.v_$session之类表,但在函数或存储过程中却无法访问。查询资料,也证实若需在程序中访问,要将这些表的查询权限select授权给访问用户才可以。象Sybase的一些系统存储过程和系统表也是需要高级用户授权才可以使用。访问系统表能提供一些非常有用的功能。

    SELECT t.username
      FROM sys.v_$session t
      WHERE t.status = 'ACTIVE'
      AND t.username IS NOT NULL;

将显示当前连接的用户。

select * from all_tab_columns where table_name='TB' and column_name like 'FLD%' and owner='USER' ;

将查询出所有USER用户下TB表中字段名以FLD开头的列的名字,

select * from all_tables;
select * from tab;

显示所有表,下面一条似乎是上面的视图。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/359.html

发表评论

邮箱地址不会被公开。 必填项已用*标注