奇特的MINUS 问题

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
SELECT LEASEBRANDID
FROM new.H2_LEASEBRAND_T
WHERE TO_CHAR(LAST_MODI_TIME,'yyyy-mm-dd')=TO_CHAR(SYSDATE-1,'yyyy-mm-dd') AND state = 999
MINUS
SELECT LEASEBRANDID
FROM web.H2_LEASEBRAND_T@sh
WHERE TO_CHAR(LAST_MODI_TIME,'yyyy-mm-dd')=TO_CHAR(SYSDATE-1,'yyyy-mm-dd') AND state = 999

在开发环境下执行没有问题,但是到正式环境执行是就报00932错误
MINUS 上下的两段语句能单独执行 用MINUS连接一起执行就不行,请问是什么问题,难道是dba设置了什么权限,
谢谢!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
估计是在哪块出现了类型转换然后造成了数据类型的不一致
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
确认正式环境LEASEBRANDID 的类型相同
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
LEASEBRANDID 的类型肯定相同的 一个是生产库 一个是镜像库
同一个建库脚本
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
代码没有问题估计是权限问题!
试试如下的写法!
SELECT a.LEASEBRANDID
FROM new.H2_LEASEBRAND_T a, web.H2_LEASEBRAND_T@sh b
WHERE a.LEASEBRANDID = b.LEASEBRANDID(+)
AND b.LEASEBRANDID is null;
AND TO_CHAR(a.LAST_MODI_TIME, 'yyyy-mm-dd') = TO_CHAR(SYSDATE - 1, 'yyyy-mm-dd')
AND a.state = 999 ;
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
好的 谢谢 我去试试!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
原帖由 bell6248 于 2007-11-22 15:04 发表
代码没有问题估计是权限问题!
试试如下的写法!
SELECT a.LEASEBRANDID
FROM new.H2_LEASEBRANDT a, web.H2_LEASEBRAND_T@sh b
WHERE a.LEASEBRANDID = b.LEASEBRANDID(+)
AND b.LEASEBRANDID ...




分开执行OK的
数据类型移植
不能minus会和权限有关吗?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
问题解决了没有
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
是函数问题 把to_char 换成trunc就可以乐!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
00932,按你这里的描述,应该是权限问题
没有合适的权限去访问表
跟to_char 还是 trunc应该没关系的
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行