2022 08 02

Oracle 常用语句

Oracle Database SQL

表的元数据

当前用户

  • 表与表注释
sql
SELECT t.owner,
       t.table_name AS tableName,
       f.comments   AS comments
  FROM all_tables t
       INNER JOIN user_tab_comments f
       ON t.table_name = f.table_name;
  • 表与字段注释
sql
SELECT a.table_name,
       b.comments,
       c.column_name,
       c.comments
  FROM user_tables a
       LEFT JOIN user_tab_comments b
       ON a.table_name = b.table_name
       LEFT JOIN user_col_comments c
       ON a.table_name = c.table_name

所有用户

  • 表与注释
sql
SELECT t.owner,
       t.table_name AS tablename,
       f.comments   AS comments
  FROM all_tables t
       INNER JOIN all_tab_comments f
       ON t.table_name = f.table_name;
  • 表与字段注释
sql
SELECT a.owner,
       a.table_name,
       b.comments,
       c.column_name,
       c.comments
  FROM all_tables a
       LEFT JOIN all_tab_comments b
       ON a.table_name = b.table_name
       LEFT JOIN all_col_comments c
       ON a.table_name = c.table_name

任务

sql
select * from DBA_JOBS;
select * from dba_jobs_running;
select * from user_jobs;

会话

sql
select a.username, a.STATUS, a.OSUSER, a.sid, a.SERIAL#, a.program, b.spid, c.sql_text, c.SQL_ID
  from v$session a, v$process b, v$sqlarea c
 where a.paddr = b.addr
   and a.sql_hash_value = c.hash_value
   and a.username is not null;

-- kill 会话
alter system kill sessionsid,serial#’;

sql
select l.session_id      as sid,
       s.serial#,
       l.locked_mode     as 锁模式,
       l.oracle_username as 登录用户,
       l.os_user_name    as 登录机器用户名,
       s.machine         as 机器名,
       s.terminal        as 终端用户名,
       o.object_name     as 被锁对象名,
       s.logon_time      as 登录数据库时间
  from v$locked_object l, all_objects o, v$session s
 where l.object_id = o.object_id
   and l.session_id = s.sid
 order by sid, s.serial#;

表大小

sql
SELECT owner,
       segment_name,
       segment_type,
       ceil(max_size / (1024 * 1024 * 1024)) AS "上限(G)",
       bytes / (1024 * 1024 * 1024)          AS "空间大小(G)"
  FROM dba_segments a