调用Oracle存储过程

楼主
我是社区第51621位番薯,欢迎点我头像关注我哦~
本帖最后由 加菲喵 于 2015-9-10 15:29 编辑

我是使用Oracle数据库,很多情况下会使用Oracle的存储过程作为数据集,实际情况下,当Oracle的表空间数据比较多【Oracle返回数据集的方式是存储包】,当在设计器中添加存储过程,会等待稍长一段时间,作为IT人员,真是很难忍耐,此次帮助文档完善活动,我在此提出我的折中解决方法供大家参考,如有不正之处,请大家多多指教【在给位评审的建议上做了修改,增加了存储过程贴图以及存错过程参数与模板的对应说明】
存储过程

  • 存在调用Oracle存储过程较慢的情况
  • 解决方法一:去掉显示Oracle所有表的配置
  • 解决方法二:在数据库查询中调用存储过程
  • 游标
  • 调用Oracle存储过程
1. 存在调用Oracle存储过程较慢的情况
如果Oracle中的表空间较多,而且数据较多,使用Oracle中的一个存储过程作为数据集,会出现等待时间较长的情况,如下图:
当左侧存储过程显示出来以后,还要在搜索框输入存储过程名,又是需要等待一段时间
2. 解决方法一:去掉显示Oracle所有表的配置
设计器中选择文件—选项
选择高级,去掉展示Oracle所有表的选中状态。
这样创建存储过程的时候,只会显示当前表空间的数据,而不会显示所有表空间数据。存储过程显示和搜索速度明显加快。
3. 解决方法二:在数据库查询中调用存储过程
举例:在Oracle存储过程,根据用户名和密码获取一条人员信息,如下图所示:
在设计其中,新建数据库查询,直接调用存储过程,此方法不用新建存储过程数据集,速度较之方法一还要快,如下图:
参数名称跟存储过程里面的保持一致
另一个参数P_DATA
表示输出的数据集,在模板中使用“?”代替
分享扩散:
参与人数 +1 F币 +375 理由
传说哥 + 375 赞一个!

查看全部评分

沙发
发表于 2015-8-8 17:32:04
1 细节问题:解决方案是否还可以丰富一些
2  归类问题:感觉归于此处也是合理  归于 性能优化 >> 报表性能优化 也是合理的,  有待商榷。

还有  楼主
调用Oracle存储过程.docx
我以为是更细节方面,于是就傻乎乎的下载了    赔我豆子
板凳
发表于 2015-8-8 17:39:19
鼓励推陈出新,积极分享。能调用ORACLE包级别的存储过程,不简单。超级难调试。
地板
发表于 2015-8-8 23:10:38
本帖最后由 wzh5788 于 2015-8-8 23:14 编辑

楼主的总结和分享不错

只是 。为什么我设置不显示所有表的时候,我的存储过程和物化视图之类的都不见了,只剩下表
目测是只显示当前用户下的objects这个要做一下说明

另外 是否可以解释一下call  存储过程()  括号内参数的含义,为什么我总是测试失败
5楼
发表于 2015-8-10 14:21:50
{:6_151:}看了一遍我并没有看懂,对于解决方案,希望可以写的更加细致一点,特别是解决方法一。这样对于oracle新手来说,也更容易学习接受。
6楼
发表于 2015-8-17 21:50:06
评分
难度35
详尽度20
通用度20
7楼
发表于 2015-8-25 16:50:25
本帖最后由 susie 于 2015-8-25 17:04 编辑

8楼
发表于 2015-10-12 16:42:45
顶一个。。。。。。
9楼
发表于 2015-10-19 10:16:52
学习了!新手上路!
10楼
发表于 2015-11-17 10:02:01
好高大上啊
11楼
发表于 2016-3-3 16:35:33
新手,学习了,谢谢!
12楼
发表于 2018-4-12 11:20:46
不错,学习了
13楼
发表于 2018-5-18 18:25:48
#在这里快速回复#111
14楼
发表于 2018-5-18 18:26:05
11223111
15楼
发表于 2018-5-18 18:48:29
还没弄起来。老是报null错误。
16楼
发表于 2022-12-10 10:33:48 发布于APP客户端
方法2怎么把查询控件绑定存储过程的参数?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

15回帖数 3关注人数 28351浏览人数
最后回复于:2022-12-10 10:33

返回顶部 返回列表