编译存储过程或函数的问题,是不是Oracle的bug?

WangZWang 2007-07-04 10:45:50
在进行编译存储过程的时候Oracle.exe进程的cpu占用率99%,始终编译不过去,没有提示语法错误,编译就没有任何反应了, 过程也没有语法问题, 把存储过程改为函数 或者把它放到Packages中也是同样的问题,我的Oracle版本是Version 9.2.0.1.0 ,请问一下这个一般是什么问题,是不是Oracle的Bug, 多谢 !

【注: 就编译当前一个过程的时候,不是所有的都出现这种问题 ,
过程也就 100多行,试了很多次了都是这样, 库还原到其他机子的Oracle服务器(Oracle版本一样)上也是一样的问。还说明一点,但把过程附件到包中进行编译的时候,编译很久还是没有反应,然后我就强行退出来,包是加上去了,包体没有加上去,这时候也无法删除包,要重新启动机子才能删除包。】
...全文
314 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
WangZWang 2007-07-05
  • 打赏
  • 举报
回复
盖国强的回答:
看看v$session_wait,估计是有一些竞争
-------------------------------------------------

过几天重新来执行包,就好了,有点怪,难道几台有相同表的服务器
都同时发作了?? 不过已经通过了,谢谢大家的积极参与。
bobfang 2007-07-04
  • 打赏
  • 举报
回复
删除过程中的一些语句后再编译看看,找出是哪些引起的编译不过去。
sxdtgsh 2007-07-04
  • 打赏
  • 举报
回复
编译的时候不会检查是否有死循环的,是不是编译的时候被锁了。偶以前好像也遇到过。
WangZWang 2007-07-04
  • 打赏
  • 举报
回复
代码写的没有问题,而且没有任何循环语句.

不是ghost克隆的,也在不同的操作系统下测试过了都行
lush_second 2007-07-04
  • 打赏
  • 举报
回复
是否代码问题,写了循环的一些语句变成死循环
blder 2007-07-04
  • 打赏
  • 举报
回复
你的电脑是不是都是用同一个ghost版本克隆的?
建议你换一个ghost版本重装系统
当然最好是用原版自己安装,
然后不要安装太多的东东
尤其不要安装杀毒\防毒软件
祝你成功!
w75251455 2007-07-04
  • 打赏
  • 举报
回复
分太多啦~~不行~~~~再来一次~~~JF~~~~~
肥胖的柠檬 2007-07-04
  • 打赏
  • 举报
回复
..这帖要留名
w75251455 2007-07-04
  • 打赏
  • 举报
回复
JF来的。。。。
l_agang 2007-07-04
  • 打赏
  • 举报
回复
估計是死鎖了。察看一下過程中是否有資源被其它進程加鎖而沒有釋放。
kongkongye 2007-07-04
  • 打赏
  • 举报
回复
在数据库中看看你的编译进程在等待什么? 是否对应的就是后台的oracle.exe 进程?
通过等待事件来看看什么原因.
ljxsea 2007-07-04
  • 打赏
  • 举报
回复
不是所有的过程有这种问题,说明是当前的这个过程存在的问题,建议看看你的过程代码。
hongqi162 2007-07-04
  • 打赏
  • 举报
回复
100多行也不多啊,没有遇到过这样的问题
宾子寻月人 2007-07-04
  • 打赏
  • 举报
回复
屏蔽过程中的部分语句试试看,看看是不是代码逻辑的问题。
1. 连接oracle时,目录中不能有()字符,否则ADO是无法连接数据库的 修改: 2.1 去掉TCPChannel的BuildPacket函数,改成直接由OnRecv回调函数返回实际数据 去掉UDPChannel的Response函数,改成直接由内部处理 2.2 修改TCPChannel类,实现同步调用接口 定义IRPC接口用来处理同步调用的被调用端 定义Bind函数用来绑定IRPC接口的实例 定义CallEx函数用来实现用户同步调用 2.3 添加bInit变量,用于设置初始化和关闭状态。 设置此变量的目的主要是用来控制,在关闭了socket之后,后续的任何投递都不执行。 修改了IRPC接口名称为IRemoteProcCall,并且调整了部分结构体名称,如RPC相关的结构体, 组合包相关的结构体,以及P2P相关的结构体。 修改TCPChannel类的接口函数Bind成BindEx,使之与TCPChannel的其他接口统一命名。 修改测试Demo,添加多发选项 修改DataType.h中的内存块大小定义 封装临界区类,信号量类 修改TCPListener接口类中的EnumSockets接口,添加pArg参数 Socket类添加ReUseAddr函数,用来设置端口重用 TCPSocket接口类添加GetListener接口用来获得链接管理对象 修改Demo实例中的TCP客户端部分,增加可更改客户端连接数 2.4 添加UDT支持 修改UDPChannel接口类,添加UDT支持接口函数 添加日志支持 添加接口类ILogger,用来实现对日志的输出 添加x64的编译环境 添加部分WARN级别的日志输出 添加C接口,方便非C++语言应用 UDT添加特性,关闭UDT时,给对端发送断线信息,通知对端断线 UDT提高效率,UDT句柄部分改用读写锁来控制,以提高效率 修改OnSend和OnSendTo的行为 修改过的BUG: 1. 数据发送时,如果数据大小正好是MAX_PACKET_SIZE个字节的话,数据发送不出去,在计算包大小时,边界值没处理好。 2. IOCPUnhandledException函数内部逻辑错误,没有关联到自己的异常处理函数中,导致即使调用成功,程序异常了,也无法写dump文件。 3. 修复IOCP UDP Release模式下不能正常运行的BUG。由于传递的输出参数使用了局部变量导致的问题 4. 修复UDT发送时,计算尾包大小错误 5. 修复UDT快速发送错误 6. 修改Queue关闭时,如果有线程正在等待信号,会导致线程死等
DbEntry.Net是一个轻量级的 .Net ORM (Object Relational Mapping) 数据访问及 WEB 框架。对于 ORM 和 Sql 调用,它都拥有清晰和易用的接口,目前支持 SqlServer、SQLite、MySql、Access、Firebird、PostgreSQL、Oracle 等数据库。对于 WEB 开发,它既支持 ASP.NET 2.0 的 DataSource 方式,也支持 Ruby On Rails 风格的 MVC 方式。支持 Linq 方式的查询,也提供一个简单的 IoC。  目前,数据库部分已经支持多主键、多表联合查询、快速分页、隐式数据库事务、连贯API查 询、ActiveRecord风格查询、动态对象、部分保存、自动创建数据表、一对一、一对多、多对多关系等功能,具体实现请参阅 Samples 中的例子程序和单元测试的内容。  而 DataSource 部分,因为绑定数据访问组件,所以可以只需要修改配置文件,不需要修改任何代码的在不同的数据之间切换。另外,还支持按命名约定的方式绑定“新建”和“编辑”页面的控件,以最少的代码完成输入、验证、保存等一系列操作。  Rails 风格的 MVC 框架目前已经完成 MVC 部分,脚手架,基类中的 LinkTo、UrlTo 等快捷函数,Http Get 支持等。目前脚手架部分没有数据验证模块,不过,自己写的 MVC 代码可以自行实现验证。   这个版本中,例子程序访问的数据库主要是 Access,而单元测试使用的数据库是 SQLite,通过修改配置文件中数据源部分,可以使之不需要重新编译即可工作于其它数据库上。配置部分通过 App.config 进行,请参阅 Samples 中的例子程序中的 App.config 和 UnitTest 项目内嵌的配置文件 UnitTest.config.xml 。所有例子程序在 MS Sql Server 2005 Express、MS Sql Server 2008 Express、 MS Access 2003、MySql 5.0、SQLite 3、Firebird 2.1.0, PostgreSQL 8.3.3 和 Oracle 10g Express 上测试过。 v4.1 版主要的改变为:  ·增加 QueryRequired 功能;  ·更严格的编译时检查;  ·Model 增加可覆盖的 OnInserting、OnUpdating、OnDeleting;  ·重新整理 DbEntryDataSource 的事件;  ·增加 ConditionBuilder;  ·增加 NotIn 支持;  ·增加 LoadRelation 函数;  ·Bug 修正 ; 标签:.net

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧