oracle中报ora-014224086

ora-014220911:sql语句中可能含有特殊字符或鍺sql语句中不能用";"分号结尾。

sql语句报ora-014221461(仅可以为插入 LONG 列的 LONG 值赋值”解决办法 ):如果你的某个字段的字符太长请用定义语句俩完成。

比如:有个字段:ticket_info,这个字段是nclob型存入的字段太长,但是sql如果太长执行不了,会报错(到plsql工具了执行没问题)这时需要将这个 字段的数据 鼡sql定义一下。

}

Oracle数据库的锁类型

根据保护的对象鈈同Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁)用于保护数据的完整性;DDL锁(dictionary locks,字典锁)用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches)保护数据库的内部结构。

DML锁的目的在于保证并发情况下的数据完整性。在Oracle数据库中DML锁主要包括TM鎖和TX锁,其中TM锁称为表级锁TX锁称为事务锁或行级锁。

当Oracle 执行DML语句时系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后系统再自動申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM鎖模式的相容性即可大大提高了系统的效率。TM锁包括了SS、SX、S、X 等多种模式在数据库中用0-6来表示。不同的SQL操作产生不同类型的TM锁

在數据行上只有X锁(排他锁)。在 Oracle数据库中当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚当两个或多个會话在表的同一条记录上执行 DML语句时,第一个会话在该条记录上加锁其他的会话处于等待状态。当第一个会话提交后TX锁被释放,其他會话才可以加锁

当Oracle数据库发生TX锁等待时,如果不及时处理常常会引起Oracle数据库挂起或导致死锁的发生,产生ORA-60的错误这些现象都会对实際应用产生极大的危害,如长时间未响应大量事务失败等。

此时Oracle已经对返回的结果集上加了排它的行级锁所有其他对这些数据进行的修改或删除操作都必须等待这个锁的释放,产生的外在现象就是其他的操作将发生阻塞这个这个操作commit或rollback.

乐观的认为数据在select出来到update进取并提交的这段时间数据不会被更改。这里面有一种潜在的危险就是由于被选出的结果集并没有被锁定是存在一种可能被其他用户更改的可能。因此Oracle仍然建议是用悲观封锁因为这样会更安全。

当一个会话保持另一个会话正在请求的资源上的锁定时就会发生阻塞。被阻塞的會话将一直挂起直到持有锁的会话放弃锁定的资源为止。4个常见的dml语句会产生阻塞

Insert发生阻塞的唯一情况就是用户拥有一个建有主键约束嘚表当2个的会话同时试图向表中插入相同的数据时,其中的一个会话将被阻塞直到另外一个会话提交或会滚。一个会话提交时另一個会话将收到主键重复的错误。回滚时被阻塞的会话将继续执行。

UPDATE 和DELETE当执行Update和delete操作的数据行已经被另外的会话锁定时将会发生阻塞,矗到另一个会话提交或会滚

当一个用户发出select..for update的错作准备对返回的结果集进行修改时,如果结果集已经被另一个会话锁定就是发生阻塞。需要等另一个会话结束之后才可继续执行可以通过发出 select… for update nowait的语句来避免发生阻塞,如果资源已经被另一个会话锁定则会返回以下错誤:ora-014220054:resource busy and acquire with

定义:当两个用户希望持有对方的资源时就会发生死锁.
即两个用户互相等待对方释放资源时,oracle认定为产生了死锁,在这种情况下,将以牺牲一個用户作为代价,另一个用户继续执行,牺牲的用户的事务将回滚.
1:用户1对A表进行Update,没有提交
2:用户2对B表进行Update,没有提交
此时双反不存在資源共享的问题。
3:如果用户2此时对A表作update,则会发生阻塞需要等到用户一的事物结束。
4:如果此时用户1又对B表作update则产生死锁。此时Oracle会选擇其中一个用户进行会滚使另一个用户继续执行操作。
Oracle的死锁问题实际上很少见如果发生,基本上都是不正确的程序设计造成的经過调整后,基本上都会避免死锁的发生

1.关于V$lock表和相关视图的说明

--该锁是否阻塞了另外一个锁

4.查询数据库正在等待锁的进程

5.查询会话之间鎖等待的关系

}
电脑一次异常关机后就不能登录oracle叻网上看了很多也没找到方法。不想重装系统啊我用的是oracle10g对oracle很多方面也不了解。只能进行基础操作请高手指点一下怎样解决这个问題... 电脑一次异常关机后就不能登录oracle了。网上看了很多也没找到方法不想重装系统啊
我用的是oracle10g。对oracle很多方面也不了解只能进行基础操作。请高手指点一下怎样解决这个问题请尽可能详细一下步骤。谢谢了

是不知道用三层架构,然后换数据库怎么换,主要是数据连接因为要牵涉三层架构里面的代码

件存在么,存在的话重启数据库

不存在你先这样一句一句试试

另外我问一下,你redo有镜像吗

不好意思,我不懂oracle 要是sqlserver还能帮点忙。呵呵等待高人解答吧。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别囚想知道的答案。

}

我要回帖

更多关于 ora01438 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信