Posts Tagged 数据库

删除Oracle 10g中的垃圾表 例如 Bin$×××××××××

Monday, May 10th, 2010 | Permalink

在使用hibernate生成工具生成*.hbm.xml在Oracle10g数据库中发现了Bin$×××××××××的表。在网络上查询
发现是oracle的垃圾表,使用drop无法删除

清除的方法如下:
purge table origenal_tableName;
purge index origenal_indexName;

查询垃圾信息,可以用如下SQL语句:
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

另外还发现,服务器端好像看不到这些垃圾表,只有客户端才能看到。不知道为什么。
反正有办法删除了。记录下。

2009/11/19追记
直接使用PURGE recyclebin;命令可以删除所有垃圾表。

oracle中使用SQL语句修改字段类型

Saturday, May 8th, 2010 | Permalink

表中没有数据:
直接这样就可以了

alter table 表名 modify (字段名 类型) eg:alter table student (id number(4));

如果原表中存在data那么方法就大不相同了,请看!!!

/*修改原字段名*/

ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;

/*添加一个和原字段同名的字段*/

ALTER TABLE 表名 ADD 字段名 VARCHAR2(30);

/*

将原来的数据更新到新字段中

这是要注意,一定要显示进行数据类型转换(不同于MSSQL)

*/

UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));

/*删除原来的备份字段*/

ALTER TABLE 表名 DROP COLUMN 字段名1;

原文链接http://www.itmop.com/network/sql/oracle/02024700.html

oracle 检查被锁的表及解锁

Monday, May 3rd, 2010 | Permalink

处理方法一 :

检查那个表被锁
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;

解锁

alter system kill session ‘273,45’;

处理方法二 :

找到你要杀掉的那个SESSION, 并记下paddr

SELECT sid, username, paddr, status FROM v$session WHERE username = ‘JCUSER’ and sid=上面查出来的sid;

找到这个SESSION所对应的spid

SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = ‘上面的PADDR’;

杀掉spid所标识的那个进程

orakill sid spid

原文来源:http://tech.e800.com.cn/articles/2009/710/1247207067745_1.html