Oracle 中重新编译无效的存储过程, 或函数、触发器等对象

Oracle 中的存储过程在有些情况下会变成失效状态,在 PL/SQL Developer 中该存储过程的图标左上角显示一把小红叉叉。比如储过程所引用的对象失效,dblink 出问题啦都可能引起用到它的存储过程失效。再就我的存储过程经常会变成无效,至今原因都未查明。

查询 dba_dependencies 视图可以看到存储过程所引用的对象,再就在 dba_objects 视图中可以看到对象的 created 和 last_ddl_time 时间。

上面的那种无效的存储程,只要不是语法上有问题,重新编译一下又是可用的了。总不能每次发现时人工去编译的,所以要实现自动化,有以下两种方法(网上找到的所有的 在Oracle中重新编译所有无效的存储过程 代码排版都很混乱,所以主要是重新整理了): 阅读全文 >>

类别: Database. 标签: , , . 阅读(226). 评论(3) »

Hibernate3调用存储过程用法

直接以一个例子在说明,如DB2中有一个简单存储过程 selectAllUsers

CREATE  procedure selectAllUsers
DYNAMIC RESULT SETS 1
BEGIN
      DECLARE temp_cursor1 CURSOR  WITH RETURN TO CLIENT  FOR
      SELECT * FROM  test;
      OPEN temp_cursor1;
END;

映射文件中关于存储过程内容如下 阅读全文 >>

类别: Hibernate. 标签: , . 阅读(269). 评论(0) »