热线电话:13121318867

登录
2019-02-14 阅读量: 814
Oracle视图代码报错

问题描述:

表 A

表 B

视图:

  CREATE OR REPLACE VIEW V_A AS
SELECT t1.* FROM A t1
WHERE t1.a_CODE LIKE 'A%'
UNION
SELECT t2.* FROM ORDER_USER t2,WHITE_ORDER_USER WU WHERE t2.ID=WU.ID;

最后在mybatis中查询V_A:

select id,a,b,c from V_A where id=#{id};

查询所有表A中字段a以A开头的所有记录,并且表B中存储了一些表A中的记录,但是表B中字段a未必以A开头(也就是表B相当于一个白名单)

log中可以看到sql语句为select id,a,b,c from V_A where id=?,参数传111或者110,
java代码中可以正常查出记录110,但是查不出记录111。

而在pl/sql developer中可以直接用sql查询出两条记录。

解决方法:

因为在表B中通过pl/sql developer插入数据之后,没有commit

pl/sql developer中执行dml语句,一定要commit或者rollback才行

42.8571
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子