VB如何调用oracle的用户定义函数?

vb调用oracle的函数或者过程一般使用ado COMMAND对象。设置CommandType = adCmdText,如果调用过程,则使用{call PackageName.ProcedureName(?,{resultset 0,RefCursor})},如果调用函数,则使用{? = call PackageName.FunctionName(?,{resultset 0,RefCursor})}。
具体代码如下:

'更新窗体标题
Me.Caption = "正在查询,请稍候..."

'检索数据
'定义一个COMMAND对象
Dim cmd As New ADODB.Command

'命令类型为文本
cmd.CommandType = adCmdText

'命令文本采用 {? = call PackageName.FunctionName(?,{resultset 0,RefCursor})}
'的形式,其中:
' 第一个 ? 是返回值
' 其他的 ? 是传入参数
' RefCursor 是REF CURSOR类型的传出参数
cmd.CommandText = "{? = call PKG_OP_JG.DELETEDEPARTMENT(?)}"

'添加参数
cmd.Parameters.Append cmd.CreateParameter("return_val", adInteger, adParamReturnValue)
cmd.Parameters.Append cmd.CreateParameter("IN_JGDM", adBSTR, adParamInput)

'给参数赋值:
cmd(1) = "1000010"

'设置连接
Set cmd.ActiveConnection = Cnn

'获取数据
cmd.Execute

'显示数据
MsgBox cmd(0)

'更新窗体标题
Me.Caption = "查询结束"

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus