Oracle - 開發常用查詢語法

做個開發常使用的查詢記錄。

– 查詢版本
SELECT * FROM v$version;
SELECT * FROM product_component_version;

– 目前資料庫的語系
SELECT * FROM nls_database_parameters WHERE parameter = ‘NLS_CHARACTERSET’;

– 查詢目前資料庫名稱
SELECT NAME FROM v$database;

– 查詢session連線數
select count(*) from v$session;

–當前的連接數
select count(*) from v$process

– 查看不同使用者的連接數
select username,count(username) from v$session where username is not null group by username;

– 查詢oracle的併發連接數
select count(*) from v$session where status=’ACTIVE’;

– 資料庫允許的最大連接數
select value from v$parameter where name = ‘processes’

– 修改最大連接數:
alter system set processes = 300 scope = spfile;

– 重啟資料庫:
shutdown immediate;
startup;

–查看當前有哪些使用者正在使用資料
SELECT osuser, a.username,cpu_time/executions/1000000||’s’, sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;

– 按機器名分組查
select username,machine,count(username) from v$session where username is not null group by username,machine;

– 查看使用者或角色系統許可權(直接賦值給使用者或角色的系統許可權):
select * from dba_sys_privs;
select * from user_sys_privs;

– 查看角色(只能查看登陸使用者擁有的角色)所包含的許可權
select * from role_sys_privs;

– 查看所有角色:
select * from dba_roles;

– 查看所有使用者
select * from all_users;

– 查看使用者或角色所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;

– 查看使用者物件使用權限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;

– 查看哪些使用者有sysdba或sysoper系統許可權(查詢時需要相應許可權)
select * from V$PWFILE_USERS;

– 查詢所有 Table
SELECT * FROM USER_OBJECTS;
SELECT * FROM USER_OBJECTS ORDER BY OBJECT_NAME;

– 查詢所有 Table & 欄位
SELECT * FROM user_tab_columns ORDER BY TABLE_NAME;
SELECT * FROM user_tab_columns WHERE table_name = UPPER(‘表格名稱’) ORDER BY TABLE_NAME;

– 取得 TABLE 的欄位
desc UPPER(‘表格名稱’);

– 取得 Table 註解
SELECT table_name, comments
FROM sys.user_tab_comments
WHERE table_type =’TABLE’
AND comments IS NOT NULL;

SELECT table_name, comments FROM sys.user_tab_comments WHERE table_name = UPPER(‘表格名稱’);

– 取得 Column 註解
SELECT table_name, column_name, comments FROM sys.user_col_comments
WHERE comments IS NOT NULL;

SELECT table_name, column_name, comments FROM sys.user_col_comments WHERE table_name = UPPER(‘表格名稱’);

–登入的帳號在目前資料庫中可以存取的DBA的資料表
SELECT * FROM DBA_TABLES

–登入的帳號在目前資料庫中可以存取的所有的資料表
SELECT * FROM ALL_TABLES

–登入的帳號在目前資料庫中可以存取的自己的資料表
SELECT * FROM USER_TABLES

Oracle常用查詢資料庫的連接數以及使用者