oracle的基本語法

oracle的全部sql命令默認都會被轉換成大寫例外的狀況有:

1.字符串,用單引號包圍
2.強制小寫或強制大小寫混合的對象名,用雙引號包圍,如"Table"、"Field"等
輸入命令時不用區分大小寫,只有在單引號和雙引號裏面的字符要注意
######sqlplus基本語法
1.登陸時首先確認id,本地用戶不用加鏈接符
sql / as sysdba 登陸oracle 默認sys用戶
show users; 顯示用戶
conn scott/tiger; 通常用戶不用寫角色
desc yangry; 查看錶結構
select file#,name from V$datafile;
#顯示name列爲namea,而且一行最多50個字符
col 列名 format a50 heading namea;
select * from dba_objects where rownum <100;
set long 2000; 設置文本的長度
注意text是long類型
select text from dba_views where view_name='DBA_TABLESPACES';
set pagesize 100;一頁顯示100行
set linesize 100; 一行顯示100個字符
col 列名 for a50;
purge WRH$_SGASTA_BL
purge recyclebin ;清空回收站
show recyclebin;查看回收站
flashback  table yangry to before drop 回收站的數據庫還原
desc yangry 查看錶結構
show parameter; 查看全部的參數是在超級用戶下能夠查看
show parameter user_dump_dest;查看某個參數
desc v$version 查看錶結構;
#在oracle中使用shell命令
host/! ls -lh /u01/app/oracle/

archive log  list; 查看歸檔模式
強制重啓
startup force;
強制切換日誌組
alter system switch logfile;
刪除日誌文件組
alter database drop logfile group 3;
用戶有那些表
select object_name from user_objects where object_type='TABLE';

刪除表錯誤
DROP TABLE TBL_02 PURGE
           *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
問題分析:

因爲以前同時對同一張表進行update操做,而且沒有作commit操做,強行終止後致使事物被鎖,對錶操做報ORA-00054: resource busy and acquire with NOWAIT specified ortimeout expired錯誤。
一、 用dba權限的用戶查看數據庫都有哪些鎖
select t2.username,t2.sid,t2.serial# from v$locked_object t1,v$session t2
where t1.session_id=t2.sid
USERNAME                  SID    SERIAL#
------------------------------ ---------- ----------
GUOYF                    1      17
二、 根據sid查看具體的sql語句,若是sql不重要,能夠kill
select sql_text
from  v$sqltext awhere a.hash_value = (select sql_hash_value from v$session b where b.sid = '&sid')
SQL_TEXT
----------------------------------------------------------------
select * from user_sys_privs

三、 kill該事務
alter system kill session '1,17';

sql

相關文章
相關標籤/搜索