Oracle启动实例报ORA-01078和LRM-00109错解决方法

Oracle启动实例报ORA-01078和LRM-00109错解决方法

Oracle权限不足问题集锦

Oracle Oracle权限不足问题集锦 跟Oracle数据库打交道的DBA都会遇到过 “Insufficient privileges”这样的错误, 出现权限不足问题的情况各有不同在本次的 Oracle系列电子书中,我们就总结了网友在 使用Oracle数据时遇到的Insufficient privileges错误。 ORA-01031:Insufficient privileges错误解决方法 以sysdba登录时的Insufficient privileges错误 Windows集群下的ORA-12638和ORA-01031错误 在不同的模式下执行SQL语句 TechTarget 中国《Oracle电子书》 1

TechTarget 中国《Oracle 电子书》 2

TechTarget 中国《Oracle 电子书》 3 解决创建存储过程时的 Insufficient privileges 错误 问:我需要使用Toad 在我的schema 中创建一个存储过程。 但是出现了“Insufficient privileges.”的错误。当我以 System 连接并将schema 的名称添加到表的前缀中 (schema.tablename),系统提示表不存在。请问问题出在哪里?我该如何解决? 答:为了在你的schema 中创建一个存储过程,你需要 有CREATE PROCEDURE 系统权限。你可以通过查询用户的DBA_SYS_PRIVS 来进行查看。此外,如果存储过程要参考对象,该用户还需要拥有相应的对象权限。举例来说,如果存储过程插入一行数据到SCOTT .EMP 表中,针对该表,用户必须被授予INSERT 权限。授权不能通过角色,你必须直接将对象权限授予用户。 (作者:Brian Peasland 译者:孙瑞 来源:TT 中国)

Oracle常见错误汇总

1.Oracle ORA-01555快照过旧的错误 首先了解Oracle在什么情况下会产生ORA-01555错误: 假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下: 1、在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变化,正确的 结果应该是用户A会看到在1点钟这个时刻的内容。 2、在1点30分,用户B执行了update命令,更新了testdb表中的第4100万行的这条记录, 这时,用户A的全表扫描还没有到达第4100万条。毫无疑问,这个时候,第4100万行的这条记录是被写入了回滚段,假设是回滚段UNDOTS1,如果用户A的全表扫描到达了第4100万行,是应该会正确的从回滚段UNDOTS1中读取出1点钟时刻的内容的。 3、这时,用户B将他刚才做的操作提交了,但是这时,系统仍然可以给用户A提供正确的数据, 因为那第4100万行记录的内容仍然还在回滚段UNDOTS1里,系统可以根据SCN到回滚段里找到正确的数据,但要注意到,这时记录在UNDOTS1里的第4100万行记录已经发生了重大的改变:就是第4100万行在回滚段UNDOTS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了! 4、由于用户A的查询时间漫长,而业务在一直不断的进行,UNDOTS1回滚段在被多个不同的 transaction使用着,这个回滚段里的extent循环到了第4100万行数据所在的extent,由于这条记录已经被标记提交了,所以这个extent是可以被其他transaction覆盖掉的!5、到了1点45分,用户A的查询终于到了第4100万行,而这时已经出现了第4条说的情况, 需要到回滚段UNDOTS1去找数据,但是已经被覆盖掉了,这时就出现了ORA-01555错误。

Oracle连接错误故障排除讲解

Oracle 连接错误故障排除 产品:Tableau Desktop, Tableau Server 版本:All 上次修改日期:24 Aug 2015 Oracle 驱动程序需要具有唯一格式的特定连接语句。然而,可能并不总是需要TNSNames.ora 文件。例如,如果仅安装了 Tableau 提供的 Oracle 文件,且不具有独立的 Oracle 客户端。Oracle 错误消息涉及 TNSNames.ora 文件。 通常,纠正“高级 Oracle 连接”对话框中的路由或命名语法,或者使 用 .WORLD 数据库全名,即可解决大部分 Oracle 连接问题。如果连接错误需要进一步进行故障排除,请参阅下面列出的 4 种常见连接错误。 ?ORA-03113:通信信道上的文件结尾 ?ORA-12154:TNS:无法解决指定的连接标识符 HOST 值不正确或者全局名称不正确或未知的问题 ?ORA-12514:TNS 侦听器当前无法识别连接描述符中请求的服务SERVICE 值不正确 ?ORA-12541:TNS:无侦听器 PORT 值不正确 ?ORA-00932:数据类型不一致 ORA-03113:通信信道上的文件结尾 ORA-03113 是任何干扰 Oracle 会话的问题的全捕获类型错误。造成该错误的原因可能有很多。请参阅下表,了解故障排除指南。 ?请参阅特定于此错误的 Oracle 文档:我的 Oracle 支持。 o请参阅 Oracle 的 B 常见错误故障排除页面。 ?Oracle 建议您检查网络问题并审查 SQL*Net 设置。 ?如果连接到 Oracle 9.2.0.5,则在很多情况下,造成此错误的主要原因是 Oracle 错误 3010227。请要求 Oracle 数据库管理员应用 Oracle 修补程序 9.2.0.6 或适合您服务器的另一个修补程序。 ?将 Oracle 初始化参数“STAR_TRANSFORMATION_ENABLED”设置为FALSE。 ?或者,如果您想进一步测试此问题,请遵循下面列出的可选过程。 Step 1 从 Tableau Desktop 开始页面,选择“连接到数据”。

oracle操作常见错误

1.[Err] ORA-02438: Column check constraint cannot reference other columns ORA-02438: 列检查约束条件无法引用其它列 --通常可能是constraint 拼写错误 2. [Err] ORA-02250: missing or invalid constraint name 约束条件名缺失或者无效。 比如: alter table tbl_school add s_level number(7) constraint unique; //错误的 ====add s_level number(7) unique; 正确的 4. [Err] ORA-01861: literal does not match format string ORA-01861: 文字与格式字符串不匹配 比如: insert into tbl_school(id,s_name,address,establish_time,style) values(1,'清华','北京','1976-05-05','理'); 日期的输入,要有固定的格式 =====values(1,'清华','北京',to_date('1976-05-01','rrrr-mm-dd'),'理'); 5:select index_name,table_name from user_indexes Where table_name=’s_emp’; 提示错误:为选定行。 ‘’里面的就变成了字符串,是区分大小写的, select index_name,table_name from user_indexes Where table_name=’S_EMP’; 6:Ora-02290【】违反检查约束条件 可能原因:check里面出错,在传值的时候,出现乱码了,只能重建表

安装oracle数据库常见的错误

安装oracle数据库容易出现的几个错误及解决办法 这几天因为学习的关系,需要安装oracle数据库。以前在机子上装过,但是卸载了,在再次安装的过程,碰到一些问题,查了一些网上的资料,现在整理起来,相信蛮有用的! 一、第一次安装容易出现的错误。 第一次安装出现“加载数据库错误areasQueries”的错误,一般是因为Oracle安装目录带有中文字符的目录 二、再次安装容易出现的错误 第一次安装失败或者卸载后再次安装oracle数据库,需要在注册表里删除相关注册信息才行。 1、删除ORACLE注册表,位置如下: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE ORACLE8i 与ORACLE9i的注册表与ORACLE8 ,ORACLE7有所不同,oracle9i注册表的主要内容在HOME0中,再安装其他产品则会出现HOME1,HOME2等。所以如果机子上没有别的产品的话同,把ORACLE 及以下键值全部删除。 2、删除oracle服务,位置如下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\oracle 含oracle 在内全部删除掉,当然,服务可以用关工具进行删除,同等效果的。 注意,如果已经安装了ArcSDE For Oracle,在删除Oracle键值的时候,不能删除带有ArcSDE 关键字的键值,否则容易造成ArcSDE无法运行。 3.删除事件日志,置如下: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Eventlog\Application

Oracle_ORA一些错误整理

1、ORA-12560: TNS: 协议适配器错误 场景:在cmd窗口输入:sqlplus "/as sysdba"想打开数据库时报的错; 原因:没有启动Oracle服务器; 解决:WIN+R,跳出运行窗口,输入"services.msc",打开服务窗口;找到OracleServiceORACLE服务,查看是否为启动,右键启动即可。 2、ORA-12541:TNS:no listener 场景:用pl/sql developer客户端连接数据库; 原因:监听器没有启动; 解决:打开服务,启动OracleOraDB12Home1TNSListener。 3、ORA-28547:connection to server failed,probable Oracle Net admin error 场景:将监听器配置文件:listener.ora中的SID_NAME 更改后导致的; 原因:多数是因为navicat本地的OCI版本与Oracle服务器器不符造成的; 解决:将SID_NAME修改为原来的名称。 4、ORA-01438 因为插入的数值大于所在的列的最大允许精度。 5、ORA-12899 字符值大于此列指定的允许精度 6、ORA-00942:表或视图不存在 表或试图不存在 7、ORA-01400: 无法将NULL 插入("SCOTT"."ITEMS"."ITEMNAME") 因向表中插入数据时,主键/约束的列为空。 8、ORA-00001: 违反唯一约束条件(SCOTT.PK_ITEMS) 因想表中插入数据时,某列设置了唯一约束,插入的值,表中已经存在了。 9、ORA-01017: 用户名/口令无效; 登录被拒绝 有可能用户名或者密码错误

Oracle常见错误及解决方案

O r a c l e常见错误及解决方案 问题1:Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initialization or shutdown in progress 错误提示,应用系统无法连接Oracle服务。 解决方法如下: ⑴进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID; ⑵运行sqlplus "/as sysdba" SQL>shutdown immediate 停止服务 SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号 SQL>shutdown immediate 再次停止服务 SQL>startup mount SQL> recover datafile 2 恢复出错的数据文件 SQL>shutdown immediate 再次停止服务 SQL>startup 启动服务,此次正常。 ⑶进入PL/SQL Developer检查,没有再提示错误。 问题2:Oracle密码忘记了怎么办? 解决方法有很多种,这里讲述以下三种: ⑴打开cmd,输入sqlplus /nolog,回车; 输入“conn / as sysdba”; 输入“alter user sys identified by 新密码”。 注意:新密码最好以字母开头,否则可能出现错误Ora-00988。有了这个方法后,只要自己对oracle 服务器有管理员权限,Oracle密码忘记了也不用着急,可以随意修改密码。 ⑵在命令行执行如下命令: sqlplus "/@服务名as sysdba" 然后在sqlplus中运行以上命令即可修改密码: alter user sys identified by 新密码; alter user system identified by 新密码; ⑶运行到C盘根目录 输入:SET ORACLE_SID = 你的SID名称 输入:sqlplus/nolog 输入:connect/as sysdba 输入:alert user sys identified by sys 输入:alert user system identified by system 完成以上5步,则密码更改完成,密码是Oracle数据库的初始密码。 问题3:表空间不足而引发错误怎么办? 解决方法如下: oracle表空间不足,一般有两个原因:

ORACLE数据库常见问题诊断方法(内部错误篇)-20021224-A2

ORACLE数据库常见问题诊断方法 (内部错误篇) ORACLE的错误各种各样,包括应用错误、一般错误、内部错误等,前面两类错误在ORALCE的文档中有说明,但内部错误没有相应的文档说明,只是请求报告ORACLE技术支持,本文档主要讨论ORACLE的内部错误,且这些内部错误在ICD中经常出现,仅供参考。 内部错误一般为格式为ORA-00600或ORA-006XX,其中前者最普遍,后者较少见,ORA-600中的第一个变量用于标记代码中错误的位置,第二个到第五个变量显示附加信息,例如文件号、函数号等具体信息。 1ORA-00600【12330】错误 特征:数据库告警日志中经常有这个错误及相应的trace文件 原因:用户异常中断操作或客户端字符集与SERVER端字符集不一致 措施:如果偶尔出现,则为用户异常中止,例如代理或应用服务器的断连,有时会产生这个错误;如果经常出现,则为客户端与服务端字符集不一致。 客户端的字符集在注册表里定义: HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG 2ORA-00604【xxx】错误 特征:在分析SQL语句时,查询数据字典表发生错误 原因:这类错误一般与内存管理有关,有可能是由于内存泄漏导致该错误 措施:如果偶尔出现,适当加大SHARE_POOL_SIZE;如果经常出现,则需要打相应的补丁。 3ORA-00600【3339】错误 特征:数据冲突,包括:块格式冲突、非法索引入口 原因:oracle系统本身bug;操作系统或介质故障 措施:ORACLE升级或打补丁;检查硬件故障 4ORA-00600【13004】错误 特征:逻辑冲突,例如查询返回错误的数据等 原因:oracle系统本身bug; 措施:ORACLE升级或打补丁;

oracle常见问题分析

第一楼目录 故障分类一数据库挂起故障 1 由于ARCHIVE挂起导致数据库挂死 2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 故障分类二数据库功能/性能异常 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致数据库操作特别慢 7由于空间不够导致插入数据时扩展索引失败 8由于REDOLOG破坏导致数据库异常 9由于控制文件被破坏导致数据库无法正常启动 10由于数据文件丢失或破坏导致数据库无法正常启动 11由于空间参数设置不合理导致扩展表空间、索引等失败 12由于时间格式的环境变量设置问题导致话单无法入库 13由于大事务未使用大回滚段导致事务挂起 14由于数据库连接数太多导致服务器进程数多或内存耗尽 15由于使用了MTS方式,导致数据库操作特别慢(包括备份) 16由于存在一个大事务操作,导致数据库性能特别差或产生频繁日志切换 17由于没有COMMIT,导致数据库表被锁住 18索引创建不合理,导致数据库查询特别慢 19 由于BUFFER参数设置不合理导致EXP失败 20由于EXP不向上兼容,语言不兼容,导致不同版本、不同字符集的数据库无法导入 21 由于创建表空间时误将其创建在以‘本地管理’,导致在表空间上的所有对象无法修改其存储参数 22 错误地在系统表空间上建无关的数据文件 23 ORACLE客户端在P4上安装不成功 24由于LISTENER.ORA或TNSNAMES.ORA配置问题导致网络问题 25由于环境变量设置问题导致VERSOIN版本启动问题 26用户数据、表破坏下的数据恢复 27 由于OS层问题导致数据库ORA-600错误 故障分类三将导致数据库安装失败或打补丁失败的情况 28 由于环境变量或没有安装MAKE文件导致数据库安装失败 29 由于/TMP等文件系统设置太小导致数据库无法正常安装 30 HPUX上由于核心参数设置不对导致数据库无法正常启动 31 在64位的ORACLE817上打32的补丁失败 32由于安装备机数据库时是使用的拷贝方式,所以导致在备机上安装补丁失败 33由于安装ORACLE时错误地在$ORACLE_HOME目录下创建LINK,导致将打过补丁后的版本拷贝到备机失败

Oracle常见错误代码的分析与解决

Oracle常见错误代码的分析与解决 作者:chensheng 发文时间:2005.06.15 在使用ORACLE的过程中,我们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误代码一一做出分析,希望能够帮助你找到一个合理解决这些错误的方法,同时也希望你能够提出你的不同看法。毕竟作为一种交流的手段,个人意见难免过于偏颇,而且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。 ORA-01650: unable to extend rollback segment NAME by NUM intablespace NAME 产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。 解决方法:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体情况可以增加一个或多个表空间。当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意增加回滚段表空间的大小,可使用下列语句先查询一下剩余的tablespace空间有多少: select user_name,sql_text from V$open_cursor where user_name=''; 如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语句来检测一下rollback segment的竞争状况: 和

ORACLE SPATIAL常见使用错误解决办法

ORACLE SPATIAL常见错误解决办法1、ORA-13226: 没有空间索引接口将不被支持 当使用一个空间操作符时,如果没有使用空间索引导致该操作符不能被完成将会返回该错误。这可能会发生在当你使用的列上没有空间索引、或者优化器没有选择以所用为基础进行计算时。 解决办法:如果在空间操作符的列上没有索引,就创建一个索引。如果优化器没有选择空间索引,那么久显式地指定index或ordered以确保空间索引被使用。 例如: select b.gwm_fid, b.gwm_fno, b.gwm_vno, a.gwm_tileid, b.districtid from gs_tile_p2 a, VP_street_area b where b.gwm_vno = 13001 and b.deletetag = 0 and b.gwm_status = 0 and sdo_relate(a.gwm_geometry, b.gwm_geometry, '' MASK = ANYINTERACT '') = '' TRUE ''; 查询提示该错误,原因gs_tile_p2该表没有创建控件索引。 2、ORA-13203: 读取USER_SDO_GEOM_METADA TA视图失败 如果在USER_SDO_GEOM_METADATA视图中对没有任何元数据的表进行索引,就会返回该错误。 解决办法:在该视图中插入一条与空间层相关的记录。

比如: CREATE INDEX INDEX_GS_TILE_P2 ON GS_TILE_P2(GWM_GEOMETRY)INDEXTYPE IS MDSYS.SPATIAL_INDEX; 提示ORA-13203错误,经查询发现没有在元数据中插入记录。 INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) V ALUES ('GS_TILE_P2', 'GWM_GEOMETRY', MDSYS.SDO_DIM_ARRAY (MDSYS.SDO_DIM_ELEMENT('X', -5000000, -5000000, 0.000000050), MDSYS.SDO_DIM_ELEMENT('Y', -5000000, -5000000, 0.000000050), MDSYS.SDO_DIM_ELEMENT('Z', 0,0, 0.000000050) ), NULL); 3、ORA-13365:层的SRID与几何体的SRID 不符 该错误暗示着在一个表的几何体中的SRID与USER_SDO_GEOM_METADA TA视图中相应的SRID值不符。 解决办法:将两者的SRID设为一致。 4、ORA-13223: SDO_GEOM_METADA TA中的重复项

Oracle数据库服务中常见的6个错误

Oracle数据库服务中常见的6个错误 没有人会否认Oracle是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。 关于“好的东西似乎总不是那么好用(初看起来如此)”的一个笑话:在参加 IBM DB2 512、513培训前,在校园网上下载到了安装程序,不过任凭我们几个同学研究个半天,也不知哪个文件是安装文件,竟没有安装成功。最后,一致认为:看来这个培训真是太有必要了!事后,才知道--我们下载的是4linux的! 1、ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是后者,则使用“Net8 Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路OK。在添加之前可能需要把所有的监听器先删!) 2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误 原因:Oracle的数据库服务没有启动。使用命令net start OracleSERVICEORADB(ORADB为数据库名字)即可。如果仍没有解决,请继续向下看。 3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步: 1)ORADIM -DELETE -SID oradb 删除数据库服务项 2)ORADIM -NEW -SID oradb 新增数据库服务项 注:这个过程中如果出错,就重启计算机! 4、ORA-12154:TNS:能解析服务名 原因:Oracle的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。如果仍没有解决,请继续向下看。 5、ORA-1034 :TNS:Oracle不可用 原因:Oracle的数据库服务正确启动,但是数据库没有打开! 使用命令: 1)svrmgrl 启动服务管理器 2)connect internal 以internal身份登陆 3)startup 打开数据库 6、ORA-12560:TNS:协议适配器错误(顽固性的) 原因:未知。

Oracle错误代码大全

Oracle错误代码大全 ORA-01579: 恢复过程中出现写错误 ORA-01580: 创建控制备份文件时出错 ORA-01581: 尝试使用已分配的回退段 () 新区 () ORA-01582: 无法打开要备份的控制文件 ORA-01583: 无法获得要备份的控制文件的块大小 ORA-01584: 无法获得要备份的控制文件的文件大小 ORA-01585: 标识备份文件时出错 ORA-01586: 无法打开要备份的目标文件 ORA-01587: 复制控制文件的备份文件时出错 ORA-01588: 要打开数据库则必须使用 RESETLOGS 选项 ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 ORA-01590: 段可用列表数 () 超出最大数 ORA-01591: 锁定已被有问题的分配事务处理挂起 ORA-01592: 将第 7 版回退段 () 转换为 Oracle 8 版格式时出错 ORA-01593: 回退段最佳大小 ( blks) 小于计算的初始大小 ( blks) ORA-01594: 尝试放回已释放的回退段 () 区 () ORA-01595: 释放区 () 回退段 () 时出错 ORA-01596: 无法在参数中指定系统 ORA-01597: 无法改变联机或脱机系统回退段 ORA-01598: 回退段''未联机 ORA-01599: 无法获得回退段 (), 高速缓存空间已满 ORA-01600: 至多只有一个""在子句""()中 ORA-01601: 子句""()中的存储桶大小非法 ORA-01603: 子句""()中的分组大小非法 ORA-01604: 子句""()中的编号范围非法 ORA-01605: 子句""()中缺少编号 ORA-01606: gc_files_to_locks 不同于另一已安装例程的参数 ORA-01608: 无法将回退段''联机,其状态为 () ORA-01609: 日志是线程的当前日志 - 无法删除成员 ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成 ORA-01611: 线程编号无效 - 必须介于 1 和之间 ORA-01612: 线程已经启用 ORA-01613: 线程只有日志 - 要求至少启用 2 个日志 ORA-01614: 线程正忙 - 无法启用 ORA-01615: 线程已安装 - 无法禁用 ORA-01616: 线程已打开 - 无法禁用 ORA-01617: 无法安装: 不是有效的线程编号 ORA-01618: 线程未启用 - 无法安装 ORA-01619: 线程已由另一例程安装 ORA-01620: 没有可用于安装的公用线程 ORA-01621: 数据库打开时无法重命名当前日志的成员

Oracle 存储过程exception异常处理大全及实例经典最终

一、一个实例Commit;create or replace procedure PROC_SUNHONGBO_MONCHNL(tim varchar2) is timest varchar(8); timday varchar(33); sqlsql varchar(6666); no_result EXCEPTION; begin Commit; select to_char(sysdate,'yyyymmddHH24miss') tima into timday from dual;select to_char(add_months(sysdate,-1),'yyyymm') mon into timest from dual; dual; into timest from select tim mon execute immediate 'delete report.wo_sunhongbo_chnl where mon = '||tim; Commit;**********/如果有就抛出异常后继续执行、/*1添加所需要的列real_charge + time ,BEGINvarchar2(66)';real_charge'||tim||' add immediate 'alter table execute shiyw11.t_my EXCEPTION WHEN no_result THEN DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!'); WHEN OTHERS THEN '||tim);!已经存在该列1:你的数据更新语句DBMS_OUTPUT.PUT_LINE(' END; execute immediate 'update shiyw11.t_my set real_charge'||tim||' = null'; Commit; Commit; dbms_output.put_line('timest:'||timest||';tim:'||tim||';timest:'||sqlsql); Commit; end PROC_SUNHONGBO_MONCHNL; / Commit; 主要内容如下: 1.1 异常处理概念1.1.1 预定义的异常处理1.1.2 非预定义的异常处理 1.1.3 用户自定义的异常处理 1.1.4 用户定义的异常处理 异常错误传播1.2 1.2.1 在执行部分引发异常错误1.2.2 在声明部分引发异常错误1.3 异常错误处理编程 1.4 在PL/SQL 中使用SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。

Oracle数据库TNS常见错误的解决方法讲解

讲解Oracle数据库TNS常见错误的解决方法 育龙网WWW.CHINA-B.C0M 2009年08月13日来源: 互联网 育龙网核心提示: 1、ORA-12541:TNS:没有监听器缘故:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraHome10gTNSListener即可; 1、ORA-12541:TNS:没有监听器 因:没有启动监听器或者监听器损坏。若是前者,使用命令net start OracleOraHome10gTNSListener即可;假如是后者,则使用“Net Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可 2、ORA-12500:TNS:监听程序无法启动专用进程或 ORA-12560:TNS:协议适配器错误 因:ORACLE的服务没有启动。使用命令net start ORACLESERVICEORADB即可。假如仍没有解决,请接着向下看。 3、假如数据库服务启动失败,则专门有可能是其项值损坏,最好的做法是以下两步: 1)ORADIM -DELETE -SID oradb 删除数据库服务项 2)ORADIM -NEW -SID oradb 新增数据库服务项

注:那个过程中假如出错,就重启计算机! 4、ORA-12154:TNS:能解析服务名 因:ORACLE的网络服务名没有正确配置。请使用“Net8 Configuration Assistant”工具向导之“本地网络服务名配置”配置TNS即可。假如仍没有解决,请接着向下看。 5、ORA-1034 :TNS:ORACLE不可用 因:ORACLE的数据库服务正确启动,然而数据库没有打开! 使用命令: 1)svrmgrl 启动服务治理器 2)connect internal 以internal身份登陆 3)startup 打开数据库 6、ORA-12560:TNS:协议适配器错误 因:未知。 解决:必杀技打开“Windows任务治理器”,杀死ORACLE.exe 及ORADIM.exe进程,书写自己的ora_startup.bat,执行之! PS:

Oracle数据库Constraint约束的常用操作及异常处理

1.报告约束异常 如果校验约束时存在异常,则返回一个错误,且完整性约束仍保持未被校验状态。当约束存在异常时,一个语句就不能正确执行,则此语句被回滚。如果存在异常,必须要更新或删除了约束的所有异常后,才可以校验约束。但是在使用ALTER TABLE语句不能确定哪一行违反约束,为了确定哪一行,在发布ENABLE子句中带有EXCEPTION选项的ALTER TABLE语句。 EXCEPTION选项将ROWID、OWNER、TABLE、ROWID、CONSTRAINT放到一个指定的表中。在启用约束前,硬创建一个合适的异常报告表,用来接收ENABLE子句的EXCEPTION选项信息,可以直接执行'?\rdbms\admin\utlexcpt.sql'或'?\rdbms\admin\utlexcpt1.sql'脚本来进行创建。注意:这两个脚本的区别在于数据库的兼容性级别和所分析的表的类型。 使用的语法如下: ALTER TABLE dept ENABLE PRIMARY KEY EXCEPTIONS INTO EXCEPTIONS; 或者 alter table team disable validate constraint id_num EXCEPTIONS INTO EXCEPTIONS;--这个方法不创建索引 如果存在异常,则直接查询 SELECT * FROM EXCEPTIONS; 即可。如果需要更加详细的信息,则可以使用ROWID与原表的ROWID进行关联,这样就可以查出原始表中当前行的所有信息,并进行修改。 如何利用EXCEPTIONS来处理实践中的一些问题: (1)在已有的constraint上加载数据 先disable,再加载数据,然后enable and EXCEPTIONS INTO EXCEPTIONS,根据EXCEPTIONS表的纪录delete,最后再enable。 (2)新建constraint,原有的数据违反了这个约束 先create disable,再enable and EXCEPTIONS INTO EXCEPTIONS 以下是一个新建外键的例子: 1.alter table team add constraint id_num foreign key(id) references games(scores) INITIALLY disable; 2. 3.alter table team enable constraint id_num EXCEPTIONS INTO EXCEPTIONS; 4. 5.select * from EXCEPTIONS; 2.关于contraint的一些常见操作 定义约束: 1.alter table t add constraint ch_100 unique(id) disable ; 2. 3.alter table t add constraint ch_100 unique(id); 4. 5.alter table t add constraint ch_100 unique(id) deferred deferrable novalidate;

Oracle错误代码大全

Oracle错误代码大全——最新、最全的Oracle错误代码对快速查找oracle数据库错误原因很有帮助 ORA-00001: 违反唯一约束条件(.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数() ORA-00021: 会话附属于其它某些进程;无法转换会话 ORA-00022: 无效的会话ID;访问被拒绝 ORA-00023: 会话引用进程私用内存;无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026: 丢失或无效的会话ID ORA-00027: 无法删去当前会话 ORA-00028: 您的会话己被删去 ORA-00029: 会话不是用户会话 ORA-00030: 用户会话ID 不存在。 ORA-00031: 标记要删去的会话 ORA-00032: 无效的会话移植口令 ORA- 00033: 当前的会话具有空的移植口令 ORA-00034: 无法在当前PL/SQL 会话中 ORA-00035: LICENSE_MAX_USERS 不能小于当前用户数 ORA-00036: 超过递归SQL() 级的最大值 ORA-00037: 无法转换到属于不同服务器组的会话 ORA-00038: 无法创建会话: 服务器组属于其它用户 ORA-00050: 获取入队时操作系统出错 ORA-00051: 等待资源超时 ORA-00052: 超出最大入队资源数() ORA-00053: 超出最大入队数 ORA-00054: 资源正忙,要求指定NOW AIT ORA-00055: 超出DML 锁的最大数 ORA-00056: 对象'.' 上的DDL 锁以不兼容模式挂起 ORA-00057: 超出临时表锁的最大数 ORA-00058: DB_BLOCK_SIZE 必须为才可安装此数据库(非) ORA-00059: 超出DB_FILES 的最大值 ORA-00060: 等待资源时检测到死锁 ORA-00061: 另一个例程设置了不同的DML_LOCKS ORA-00062: 无法获得DML 全表锁定;DML_LOCKS 为0 ORA-00063: 超出LOG_FILES 的最大数 ORA-00064: 对象过大以至无法分配在此O/S (,) ORA-00065: FIXED_DATE 的初始化失败 ORA-00066: LOG_FILES 为但需要成为才可兼容

oracle遇到的问题及答案

问题一:Oracle 11G用EXP时,空表不能导出解决方法 第一查询空表到底有多少张,也就是查询为分配分配segment的表有多少张 SQL> select table_name from user_tables where NUM_ROWS=0; TABLE_NAME ------------------------------ DATA_BACKUP EQUIPMENT FEEDBACK_ACCESSORIES SPECIALPIC TASK_THIRD TASK_THIRDBATCH TASK_THIRD_DATA TASK_THIRD_FEEDBACK TESTDATA_THIRD THIRD_ACCESSORIES 已选择10行。 第二查询在当前用户下有总的有多少张表 SQL> select count(*) FROM USER_TABLES; COUNT(*) ---------- 32 第三导出当前用户下的数据 C:\Users\Administrator>exp lcpt/lcpt file=E:\0702bj\lcpt.dmp wner=lcpt log=E 702bj\lcpt.log Export: Release 11.2.0.1.0 - Production on 星期一 7月 2 10:42:07 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Productio With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 即将导出指定的用户... . 正在导出 pre-schema 过程对象和操作 . 正在导出用户 LCPT 的外部函数库名 . 导出 PUBLIC 类型同义词 . 正在导出专用类型同义词 . 正在导出用户 LCPT 的对象类型定义 即将导出 LCPT 的对象... . 正在导出数据库链接 . 正在导出序号

Oracle 错误代码集合

Oracle 错误代码集合.txt38当乌云布满天空时,悲观的人看到的是“黑云压城城欲摧”,乐观的人看到的是“甲光向日金鳞开”。无论处在什么厄运中,只要保持乐观的心态,总能找到这样奇特的草莓。ORA-17001=内部错误 ORA-17002=Io 异常 ORA-17003=无效的列索引 ORA-17004=无效的列类型 ORA-17005=不支持的列类型 ORA-17006=列名无效 ORA-17007=无效的动态列 ORA-17008=关闭的连接 ORA-17009=关闭的语句 ORA-17010=关闭的 Resultset ORA-17011=结果集已耗尽 ORA-17012=参数类型冲突 ORA-17014=未调用 ResultSet.next ORA-17015=语句被取消 ORA-17016=语句超时 ORA-17017=已初始化游标 ORA-17018=无效的游标 ORA-17019=只能描述查询 ORA-17020=无效的行预取 ORA-17021=定义丢失 ORA-17022=在索引处定义丢失

ORA-17023=不支持的特性 ORA-17024=未读取数据 ORA-17025=defines.isNull () 中出现错误 ORA-17026=数字溢出 ORA-17027=流已被关闭 ORA-17028=直到关闭当前的 ResultSet 才能进行新的定义 ORA-17029=setReadOnly: 不支持只读连接 ORA-17030=仅 READ_COMMITTED 和 SERIALIZABLE 是有效的事务处理级ORA-17031=setAutoClose: 仅支持自动关闭模式打开的情况 ORA-17032=行预取不能设置为零 ORA-17033=出现格式不正确的 SQL92 串 ORA-17034=出现不支持的 SQL92 标记 ORA-17035=不支持的字符集 !! ORA-17036=OracleNumber 中的异常 ORA-17037=不能在 UTF8 和 UCS2 之间转换 ORA-17038=字节数组不够长 ORA-17039=Char 数组不够长 ORA-17040=必须在连接 URL 中指定子协议 ORA-17041=索引中丢失 IN 或 OUT 参数: ORA-17042=无效的批值 ORA-17043=流的最大长度无效 ORA-17044=内部错误: 未分配数据数组

相关文档
最新文档