ORACLE解决无法drop的问题

引起数据库对象无法DROP的原因是对象正在被执行,另一个是对象执行后资源未释放.

第一种情况是将可能被删除对象的调用情况取消或暂停.

第二种情况 在oracle中kill一个session采用如下语句:

SQL> conn /as sysdba

已连接。

查看被锁的对象信息.

SQL> select * from v$locked_object;

执行以下SQL来找出此被锁的会话,记录下b.PID,b.SPID 的值

select a.sid,a.serial#,a.paddr,a.username,a.status,b.PID,b.SPID from v$session a,v$process b where username is not null and a.paddr = b.addr;

删除被锁的对象Session

alter system kill session ‘a.sid,a.serial#‘ ;

最后在unix环境用kill -9 b.spid杀掉进程,在windows环境用orakill sid spid杀掉进程;

各位小主。尽请补充,谢谢

大家也可以看看数据库锁的相关介绍:http://blog.itpub.net/787018/viewspace-628986/

时间: 2024-10-15 03:13:56

ORACLE解决无法drop的问题的相关文章

Oracle 笔记:PLSQL无法连接64位Oracle 解决方法

Plsql打开后提示错误,登录界面无连接目标选择. 原因:PLSQL本身好像就不支持64位的Oracle. 解决方法: 到Oracle 官网下载32位的 Oracle 客户端,地址为 http://www.oracle.com/technetwork/topics/winsoft-085727.html 解压下载的32位客户端即可. PLSQL登录界面暂时取消登录,先进入PLSQL界面,点击首选项,设置OCI库为刚才下载的32位客户端的OCI路径,路径中一定要包含 oci.dll . 添加环境变

oracle 解决backspace和上下键使用出现乱码

在bash提示符下,使用Del键或者Backspace键都能删除光标左右的字符,但是一旦进入sqlplus之后,只能使用Del键来删除光标左侧的字符,使用Backspace键则显示^H,使用ctrl+H也能删除字符.如果要在sqlplus下仅仅使用Backspace来删除字符,那么有两种方法: 第一种是使用stty命令重新定义^H,可以在使用sqlplus之前执行stty erase ^H,也可以把这一句放到Linux用户的.bash_profile文件中.修改后必须执行 . .bash_pro

oracle解决多表关联分组查询问题

做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid,(select vindexcode from comindex where pk_index =cindexid) as vindexcode ,iquesttype from rqt_examquest where pk_examquest in (    select cexamquesti

oracle数据库中drop table与purge使用实例

oracle 数据库中 drop table 与purge 实际示例: CREATE OR REPLACE PROCEDURE pro_droptable IS cursor cur is select table_name from user_tables where table_name like 'TEMPTABLE%'; drop_sql     varchar2(1000); table_number number; BEGIN SELECT COUNT(*) INTO table_n

Oracle解决索引碎片功能

我们开始时向一个空的带索引的表中插入大量数据后,是不会产生碎片问题的,但是,数据库经过很长一段时间的增删改查后,难免会出现碎片问题,影响数据库的性能,Oracle对于这一问题有自己的解决方案. 下面介绍解决这一问题的方案: 首先要对索引进行分析:analyze index ind_1 validate structure;  ind_1为你自己建立的索引 分析后查询几个主要的参数判断是否需要整理碎片:select name,HEIGHT,PCT_USED,DEL_LF_ROWS/LF_ROWS

[oracle]解决centos 7下oracle的中文乱码问题

首先在形成中文乱码的原因是由于字符集不统一导致的,不同的字符集在转换的过程中必然要出现乱码,当然不排除可以转换.所以要解决中文乱码问题,思路是将输入.存储.显示等流程中涉及到字符集都统一为一种,对于oracle首先必须满足的先决条件是要服务端和客户段的字符集统一,若还不能解决问题,同时还要将系统的字符集与之统一,甚至导入或输入数据所使用的字符集统一. 看了网上的一些资料后,都说修改服务器的字符集风险比较大,确实,测试开发用还好说,假若是上线项目的服务器,那修改服务器字符集所带来的后果是不堪的,废

oracle中delete drop truncate的用法和区别

数据库的运维中,经常会遇到delete drop truncate的操作,那么如何去把握它们的用法和区别呢? 比如当数据库空间爆满,已经增长到存储空间单个存储文件的最大值32G.你需要通过一些办法释放掉表空间或者扩容表空间来解决问题. 一般当系统中大量使用分区表,而针对分区表清除数据,是不会释放表空间的,必须把分区drop掉,才会释放空间. 下面我们具体了解一下这三个命令: 一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在r

[oracle] 解决X64操作系统PL/SQL连接报错问题 make sure you have the 32 bits oracle client installed

Windows 64位下装Oracle 11g 64位,PLSQL Developer使用出现以下问题: 1.Database下拉框为空: 2.强制输入用户名.密码及Database,登录弹出: Initialzation error Could not initialize "...." Make sure you have the 32 bits Oracle Client installed. OracleHomeKey: OracleHomeDir:... Found:oci.

Oracle tips:drop table和purge

在操作Oracle时,我们经常都会删除一个表,当删除错误后,我们希望能够恢复该表,有时也希望删除表之后能够立刻释放表的空间.下面将介绍在Oracle中表的删除.恢复和空间释放. DROP TABLE 当你drop一个表时,数据库不会立刻释放表的空间,而是重命名这个表然后将其放入回收站中,可以通过下面的方式查看一个删除的表: select object_name,original_name from user_recyclebin where original_name = 'TEMP'; OBJ