groovy excel导入oracle,使用Groovy中的IN OUT参数类型调用Oracle过程

我有一个包含以下参数的过程的Oracle包:

PROCEDURE g$_verify_password1_prd

(p_object IN VARCHAR2,

p_version IN VARCHAR2,

p_password IN OUT VARCHAR2,

p_role OUT VARCHAR2)

这是一个API调用,并通过我们的供应商写的,我不能修改它,不希望。我的问题是与p_password IN OUT参数。 Groovy调用这个语法的语法是什么?我在搜索这个答案时发现了Sql.inout,但无法得到它。这里是我的代码,请记住我已经尝试了很多事情,这简直就是在我离开的:

sql.call '{call G$_SECURITY.G$_VERIFY_PASSWORD1_PRD(?, ?, ?, ?)}',

[$p_object, p_version, ${Sql.inout(Sql.VARCHAR(p_password))}, Sql.VARCHAR],

{ p_password, p_rol ->

//p_password = p_pass

p_role = p_rol

println p_password

println p_rol

}

我不断收到类似的错误:如果我删除sql.inout

Caught: groovy.lang.MissingPropertyException: No such property: _SECURITY for class: banner.CheckSecurityService

at banner.CheckSecurityService.SecurityCheck(CheckSecurityService.groovy:49)

at banner.Hello2Service.main(Hello2Service.groovy:20)

只是传入一个变量,它运行但不正确,因为它不是从Oracle返回密码变量。我已经成功地从这个包中调用了大量程序,直到IN OUT参数为止,所以必须有一些简单的东西丢失。

2013-07-26

tnichol

+0

看看这个错误,问题出在'G $ _SECURITY'上,具体来说就是'$ _SECURITY'。当用'$'前置时'_SECURITY'被视为变量。你在应用程序中使用了双引号“''',但是我发现你已经使用过''' –

+0

这就是为什么我说我已经”成功地调用了这个程序包中的很多程序而没有问题“:)我碰到如果我摆脱了sql.inout,只是传入一个变量并继续使用与$相同的包名称,错误消失,但行为不是预期的那样 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值