2012-10-30 10:28题主

wb关于调用oracle存储过程的问题和缓存的问题.

一.请问下老大,wb中怎么调用oracle的存储过程?mysql的调用我倒是测试成功了.
    1.输出参数怎么办,我这边只定义了一个输出参数:out然后调用就不行了,这是报错信息:PLS-00306: 调用 'HI' 时参数个数或类型错误
    2.怎么接受过程的多个返回值.
二.关于缓存:
    1.wb中好像是用到缓存了,能介绍下吗?
    2.如果我不想让当前方法缓存的话,该怎么处理呢?

麻烦你了老大!!!
2012-10-30 10:48#1
一、调用存储过程各数据库方法都差不多,方法:
添加 Query组件,在SQL中编写 {call procName('abc',{?@outParam?})};
如果存储过程返回结果集,Oracle的输出参数为 {?@-10.result?};
多个返回值只要使用多个输出参数即可{call procName({?inParam1?},{?@outParam1?},{?@integer.outParam2?})}
在数据库浏览器中可直接访问存储过程,名称为result的输出参数为返回值。
你可以参考WebBuilder文档,有详细说明和示例。

二、你是指资源文件的缓存吗?方法没有必要缓存,如实在有需要你可以根据你的业务规则来实现。
WebBuilder会对资源文件静态压缩并缓存,当客户端请求时从缓存中响应或返回304 not modified。你可以在变量配置中对缓存行为进行设置,可参考文档。
2012-10-30 10:54#2
可以设置query的loadData为true,然后通过request.getAttribute("queryId.outParamId")获得输出值。
2012-10-30 11:08#3
我先试试存储过程.我的意思是说比如说查询数据库的时候好像就放入缓存了.但是我想要试试查询的话,该怎么办 呢.
2012-10-30 11:17#4
数据库的数据是实时变化的,WB不会缓存任何数据库方面的操作,你得根据你的业务来决定是否缓存,及采用何种机制来缓存。
2012-10-30 11:20#5
嗯,是的.那wb中没有做相关缓存的处理吗.如若缓存是不是我要自己处理呢?
2012-10-30 12:27#6
WB仅对资源文件作缓存处理,当然系统内部也有缓存机制。
用户应用部分的缓存,需要根据实际业务规则,来制定缓存机制。

返回开发者社区