2019-02-14
閱讀量:
845
Oracle視圖代碼報(bào)錯(cuò)
問題描述:
表 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相當(dāng)于一個(gè)白名單)
log中可以看到sql語句為select id,a,b,c from V_A where id=?,參數(shù)傳111或者110,
java代碼中可以正常查出記錄110,但是查不出記錄111。
而在pl/sql developer中可以直接用sql查詢出兩條記錄。
解決方法:
因?yàn)樵诒鞡中通過pl/sql developer插入數(shù)據(jù)之后,沒有commit
pl/sql developer中執(zhí)行dml語句,一定要commit
或者rollback
才行






評論(0)


暫無數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評論
0條評論
0條評論
1條評論