oracle查询锁表及解锁,修改表字段名与复制表结构和数据的方法
在Oracle中查询锁表及解锁:
锁表查询的代码有以下的形式:
selectcount(*)fromv$locked_object; select*fromv$locked_object;
查看哪个表被锁:
selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id;
查看是哪个session引起的:
selectb.username,b.sid,b.serial#,logon_timefromv$locked_objecta,v$sessionbwherea.session_id=b.sidorderbyb.logon_time;
杀掉对应进程:
执行命令:altersystemkillsession'32,241';其中32为sid,241为serial#.
在Oracle中修改表字段名:
假设字段有数据,则改为nvarchar2(20)可以直接执行:
altertabletbmodify(namenvarchar2(20));
若不能修改则用下面
altertablesft_bfworenamecolumnbfwoidtowid; altertablesft_bfwoaddbfwoidchar(16); updatesft_bfwosetbfwoid=trim(wid); altertablesft_bfwodropcolumnwid;
在Oracle中复制表结构和表数据:
复制表结构及其数据:
createtabletable_name_newasselect*fromtable_name_old
只复制表结构:
createtabletable_name_newasselect*fromtable_name_oldwhere1=2;
或者:
createtabletable_name_newliketable_name_old
只复制表数据:
如果两个表结构一样:
insertintotable_name_newselect*fromtable_name_old
如果两个表结构不一样:
insertintotable_name_new(column1,column2...)selectcolumn1,column2...fromtable_name_old
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接