1. 程式人生 > 資料庫 >oracle查詢鎖表及解鎖,修改表字段名與複製表結構和資料的方法

oracle查詢鎖表及解鎖,修改表字段名與複製表結構和資料的方法

在Oracle中查詢鎖表及解鎖:

鎖表查詢的程式碼有以下的形式:

select count(*) from v$locked_object;
select * from v$locked_object;

檢視哪個表被鎖:

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

檢視是哪個session引起的:

select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time; 

殺掉對應程序:

執行命令:alter system kill session'32,241';其中32為sid,241為serial#.

在Oracle中修改表字段名:

假設欄位有資料,則改為nvarchar2(20)可以直接執行:

alter table tb modify (name nvarchar2(20));

若不能修改則用下面

alter table sft_bfwo rename column bfwoid to wid;
alter table sft_bfwo add bfwoid char(16);
update sft_bfwo set bfwoid=trim(wid);
alter table sft_bfwo drop column wid;

在Oracle中複製表結構和表資料:

複製表結構及其資料:

create table table_name_new as select * from table_name_old

只複製表結構:

create table table_name_new as select * from table_name_old where 1=2;

或者:

create table table_name_new like table_name_old

只複製表資料:

如果兩個表結構一樣:

insert into table_name_new select * from table_name_old

如果兩個表結構不一樣:

insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結