当前位置:文档之家› oracle服务器常见问题

oracle服务器常见问题

Oracle 数据库服务中常见的 6 个错误
时间:2010-10-04 15:22 来源:网管之家 https://www.doczj.com/doc/0115247016.html, 字体:[大 中 小]
没有人会否认 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:协议适配器错误 顽固性的 、 协议适配器错误(顽固性的 协议适配器错误 顽固性的) 原因:未知。 解决:必杀技--打开“Windows 任务管理器”,杀死 Oracle.exe 及 ORADIM.exe 进程,书写自 己的 ora_startup.bat,执行之! PS: 1、我的 ora_startup.bat: ◆net start OracleOraHome81TNSListener ◆net start OracleSERVICEORADB ◆svrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第 5 步。 2、我的 ora_shutdown.bat: ◆net stop OracleOraHome81TNSListener ◆net stop OracleSERVICEORADB 3、Oracle 相关服务名请参见“管理工具”之“服务”中以 Oracle 开头的服务名
数据库的操作-入门基础 用 ASP 实现对 Oracle 数据库的操作 入门基础
ASP 与数据库的联接一般通过 ADO (Activex Data Object) 来实现的, 《计算机世界》 就象 2000 年 3 月 20 日的《用 ASP 对 SQL Server 数据库操作》文章介绍的一样,ADO 可以完全支持 Microsoft SQL Server , 但对应用更加广泛、 机制更加复杂的 ORACLE 数据库服务就有一些困 难,如果想作一些简单的查询功能,ADO 是足够的,如要想更好地发挥 ORACLE 数据库特有 的功能,如 STORED PROCEDURE,STORED FUNCTION 等就要采取利用 ASP 存取 ORACLE 数据 库服务的另一个强有力工具——Oracle Object for OLE 中的 ORACLE 对象服务器(The Oracle Object Server) 本文从一个实例说明如何在 ASP 中使用 ORACLE 对象服务器提供的控件来实 。 现对 ORACLE 数据库的存取,并就如何维护网络数据库的完整性约束问题进行一些讨论。 Oracle Object for OLE 是 ORACLE 公司为了客户端存取数据库所发展的一个很需要的产品,它

以 Windows 95/98/NT 为基础供所有的与 OLE 兼容的应用程序与程序语言存取 ORACLE 数据 库,如 ASP、Visual Basic excess97 等 ,Oracle Object for OLE 包含了 ORACLE 对象服务器(The Oracle Object Server) 、ORCLE 数据控制项(The Oracle Data Control)与 ORACLE 对象类程序 库(The Oracle Objects for OLE C++ Class Library)等三项产品。 与 ADO 相比,ORACLE 对象服务器是专用于 ORACLE 数据库应用程序开发的产品,它有以下 优点: (1) 与数据库服务器的连接的运行效率好。因为 ADO 是通过 ODBC 来连接数据库服务器 的,而 ORACLE 对象服务器是通过 ORACLE 的 SQL*NET 来连接数据库服务器的 (2)能更好地发挥 ORACLE 数据库的特有功能。 STORED PROCEDURE, 如 STORED FUNCTION、 PACKAGE 或 Multiple Cursor。 通讯录表的结构如下: 以下为引用的内容: Name Null? NAME
Type
NOT NULL CHAR(8)
ADDRESS CHAR(20) PHONE CHAR(20) EMAIL VARCHAR2(30)
首先:进行环境配置: 在 WEB 服务器上安装以下软件并进行配置: (1)基本的 WEB 服务器(WEB SERVER)与 ASP 等软件 (2)Oracle Object for OLE2.x (3)SQL*Net Client 或 Oracle Net8 Client 8,安装之后,用 Sql*Net Easy Configuration 建立数据 库别名(Database Alias) ,为 ASP 连接到数据库所用的别名。 二.功能实现 (1)查询:用 ASP 取数据库通讯录表(TSB1)的数据,将数据显示在屏幕上。查询的关键 在于确定与数据库的连接成功与否,ORACLE 对象服务器本身有错误控制机制可以报出数据 库连接方面的错误,具体的程序如下: 以下为引用的内容: < HTML > < tile > 查询程序 < /title > < BODY > <%

on error resume next 连接数据库 set orasession=createobject("OracleInprocServer.XOraSession") set oradatabase=orasession. dbopendatabase("axp03","scott/tiger",0) 出错处理 if err.number >0 then response.write"< h4 >asp 错误控制 < /h4 >" response.write"asp 错误来源:"&err.source &"< br >" response.write"asp 错 误 代 码 : "&err.number&"< br >" response.write"asp 错 误 说 明 : "&err.description&"< br >" err.clear response.write"< h4 >ORACLE OLE 错误控制< /h4 >" response.write"ORACLE 错误代码:"&https://www.doczj.com/doc/0115247016.html,stServerErr&"< br >" response.write"ORACLE 错误说明:"&https://www.doczj.com/doc/0115247016.html,stServerErrText&"< br >" else 查询 sql="select * from tsb1" set oradynaset=oradatabase.dbcreatedynaset(sql,0) response.write"< h3 >result< /h3 >" response.write"< table border=5 >< tr >" for i=0 to oradynaset.fields.count-1 response.write"< td >" response.write oradynaset.fields(i) 。name & " " response.write"< /td >" next response.write"< /tr >" do until oradynaset.eof response.write"< tr >" for i=0 to oradynaset.fields.count-1 response.write"< td >" response.write oradynaset.fields(i) 。value response.write"< /td >" next response.write"< /tr >" oradynaset.dbmovenext loop response.write"< /table >"

关闭数据库 以下为引用的内容: oradatabase.close set orasession=nothing end if % > < /body > < /html >
以下为引用的内容: NAME ADDRESS PHONE EMAIL 张玲 马鞍山市湖北路 5 号 0555-******* zhangl@https://www.doczj.com/doc/0115247016.html, 林向 马鞍山市湖南路 9 号 0555-******* lingx@https://www.doczj.com/doc/0115247016.html, 邓国虹 采矿路子 4 幢 504 号 0555-******* denggh@https://www.doczj.com/doc/0115247016.html, 李城 青岛海洋大学 7 幢 507 0464-32456678 licheng@https://www.doczj.com/doc/0115247016.html, 王国在 采矿小区 7 幢 807 号 0555-******* wang@https://www.doczj.com/doc/0115247016.html, 丁刚 红旗南路 17 幢 405 号 0555-******* dingg@https://www.doczj.com/doc/0115247016.html, 全在保 江西路子 7 幢 607 号 0554-******* quzab@https://www.doczj.com/doc/0115247016.html,
(2) 插入自己的信息: ASP 将用户在浏览器上提供的数据插入到数据库通讯录表 用 (TSB1) 中,由 ORACLE 数据库有一套完整性约束机制,所以插入过程不光是简单地把数据插入到 表中,还要做完整性约束的检查,不合要求的数据拒绝插入,如果在程序中不考虑处理,运 行时,就会因数据库服务器报错而中断程序。而 ASP 中的 ERR 对象可以报出错误来源、错 误代码、错误说明等,并能把程序引向错误处理。 以下是程序, 一个是 insert.htm, 是一个输入界面, 供用户输入自己的信息, 一个是 insert.asp, 负责将用户输入信息插入数据库,并进行错误检查。
以下为引用的内容: Insert.htm:< html > < head > < meta http-equiv="Content-Language" content="zh-cn" > < meta http-equiv="Content-Type" content="text/html; charset=gb2312" > < meta name="GENERATOR" content= "Microsoft FrontPage 4.0" > < meta name="ProgId" content= "FrontPage.Editor.Document" > < title >请留下你的信息< /title > < /head > < body > < p align="center" >请输入你的信息< /p > < form method="post" action="insert.asp" >姓 名:< input type="text" name="name" size="8" > < br >地 址:< input type="text" name="address" size="20" > < br >电 话:< input type="text" name="phone" size="20" > < br > E-MAIL:< input type="text" name="email" size="20" > < br > < input type="submit" value="确定 " > < input type="reset" value="取消" >< br > < /form > < /body > < /html >
下面是用户输入界面:
以下为引用的内容: 请输入你的信息姓名: 地址: 电话: E-MAIL: Insert.asp:< HTML > < BODY >

< % 连接数据库 set orasession=createobject("OracleInprocServer.XOraSession") set oradatabase=orasession. dbopendatabase("axp03", "scott/tiger",0) 把用户插入信息变成 SQL 语句 sql="insert into tsb1 values(" &chr(39)&request("name")&chr (39) &","_ &chr (39) &request ("ADDRESS") (39) "_ &chr &chr &", (39) & request ("phone")&chr(39) &","_ &chr(39)&request("EMAIL")&chr(39) &")" 运行 SQL 插入语句 oradatabase.dbEXECUTESQL(sql) 检查是否有违反完整性约束错误 IF ERR.NUMBER >0 THEN response.write"< h4 >asp 错误控制 < /h4 >" response.write"asp 错误来源:"&err.source &"< br >" response.write"asp 错误代码:"&err.number&"< br >" response.write"asp 错误说明:"&err.description&"< br >" ELSE 插入完成,返回 以下为引用的内容: response.write"插入完成,< a href=insert.htm end if % > < /body > < /html > > 返回……< /a >"
以上是本人在用 ASP 工具将原有的 ORACLE 数据库信息搬上互联网应用的一些体会, 例子 很简单, 目的在于说明原理, 本人在 ASP 程序中还使用了 STORED PROCEDURE, STORED FUNCTION、PACKAGE 等 ORACLE 特有的功能以加快速度,提高效率。

相关主题
文本预览
相关文档 最新文档