Chinaunix
标题:
通过dblink调用带参数的函数?谁用过?
[打印本页]
作者:
TOADLover
时间:
2009-10-09 11:30
标题:
通过dblink调用带参数的函数?谁用过?
RT
我在10.20.30.40上的Oracle中怎么调用10.20.30.41上的Oracle数据库中的某个带输入参数的Function?
----------------
我是这么用的:
SELECT
DECODE
(mp.f_get_d@dev (tbl_a.lot_id),
'19000101', ' ',
mp.f_get_d@dev (tbl_a.lot_id) || '000000'
) AS proj_out_date,
FROM tbl_a
------------------
活见鬼的,这上面的语句不报错,但就是proj_out_date没有值出来。。。。
这个dev是remote端,在dev上f_get_d函数正常的很,能选出值来,mp是dev上的一个用户。
[
本帖最后由 TOADLover 于 2009-10-9 11:56 编辑
]
作者:
Minsic
时间:
2009-10-09 11:30
标题:
回复 #5 TOADLover 的帖子
pl/sql默认是用所有者权限来跑的,有点像unix下的suid,authid current_user可以来指定以调用者权限来运行pl/sql块,一开始怀疑是这个问题导致这种看上去比较奇怪的现象的,但是既然函数只是取了时间,应该不是这个引起的问题。
作者:
TOADLover
时间:
2009-10-09 11:37
标题:
奇怪,我的帖子最近都没人回了?
ziggler和山野村夫到哪里去了?
作者:
Minsic
时间:
2009-10-09 12:12
没问题啊,是不是函数里面用了调用者权限了?
作者:
ziggler
时间:
2009-10-09 12:17
可以打调试语句吗?
作者:
TOADLover
时间:
2009-10-09 13:12
原帖由
Minsic
于 2009-10-9 12:12 发表
没问题啊,是不是函数里面用了调用者权限了?
-----------------------------------------------------
晕,单独执行,现在是没没有问题的了,但是在一个稍复杂些的SQL中,包含union all,就不行了。
查不出数据来,也不报错,我只好放弃了这种dblink调用远程函数的做法,把函数放到本地的Schema中了。。
函数里面用了调用者权限---是什么意思?
我在函数中只有一个select语句用来取日期的。在这个函数体内部没有任何grant语句。
[
本帖最后由 TOADLover 于 2009-10-9 13:13 编辑
]
作者:
TOADLover
时间:
2009-10-09 13:14
原帖由
ziggler
于 2009-10-9 12:17 发表
可以打调试语句吗?
可以打调试语句吗---什么意思?怎么打调试语句?
作者:
TOADLover
时间:
2009-10-09 15:35
没找到真实原因。。换种思路解决了,在6楼
作者:
Minsic
时间:
2009-10-09 15:44
标题:
回复 #8 TOADLover 的帖子
汗,这就给分了啊,惭愧
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2