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
才行






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论