orion知识

 找回密码
 立即注册
搜索
查看: 1847|回复: 0

数据库DBLink问题

[复制链接]

63

主题

75

帖子

1231

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1231
发表于 2020-4-8 20:17:06 | 显示全部楼层 |阅读模式
在数据库使用DBLink时 我们一般会这么使用  select a,b from user.table@dblinkname
这样的写法放在PLSQL中执行是没问题的 可以得到正常的结果,但是放在数据库通讯点中就会出现错误,经过查询发现如下错误

从上图中其实已经可以看出了错误所在了 是因为@dblinkname 为null 所导致的
@符号 在数据库过滤器通讯点中其实是一个特殊符号 类似于语言中的关键字之类的,类似于$符号 是代表获取属性,@符号其实是获取上一条中查询出来的列中的值

所以这样写法出来会报错,
解决办法可以通过使用动态SQL 具体如下:


1.设置允许动态执行语句


2.改写SQL语句

用两个$符号来获取

3.设置dblink属性值

可以在数据库过滤前加一个JavaScript过滤器来设置 也可以用property属性的过滤器来设置

上面设置完成后就可以实现正常的结果了

这里发现其实有可能还有一种做法 就是把dblink的名字改为数字开头的 因为在实践中发现 当使用@符号在数字开头是字体没有变色 那就说明可能不会进行变量替换这种做法倒是没有试过 感兴趣的朋友可以试试看 回头记得告诉我结果哦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|orion知识 ( 浙ICP备20002629号 )

GMT+8, 2024-9-8 08:38 , Processed in 0.083276 second(s), 19 queries .

快速回复 返回顶部 返回列表