關於在Oracle下使用p6spy所產生的問題

2021-04-01 17:31:45 字數 775 閱讀 1681

p6spy是個很好的第三方工具,可以幫我們除錯sql效能,也可以把sql語句中的問號都替換為引數,讓我們一目了然知道用的是什麼sql語句操作的資料庫,這樣我們可以把這些sql語句直接copy到sql*plus或者toad中執行。不過今天我卻遇到了乙個問題。

我進行了乙個檢索,檢索條件不很複雜,沒有自查詢,只有外關聯。類似於這樣的語句。

select

a.field1, a.field2, a.field3,

b.field1, b.field2, b.field3,

c.field1, c.field2

from

tbl_a a, tbl_b b, tbl_c c

where   ……

用sql*plus直接對資料庫進行檢索,一共檢索出2條結果,其中b的field都是空的,a和c表中都是有值的。接著用oracle的jdbc直接連線,檢索出來的也和sql*plus中的結果一致。然後我用了p6spy,這次檢索出來的兩條資料中第一條資料是正常的,第二條資料中c表裡的field居然有的為null,有的有值,怪異至極。明顯就是有問題,所以我也不敢再在這個系統下用p6spy了。

究竟是什麼原因造成這樣,我也自己分析分析,我看了一下,這個p6spy最後更新是2023年11月,我想可能那時候的jdbc驅動可能和現在我用的oracle驅動有不相容的地方,所以導致失誤,我也不知道我自己分析的究竟對不對。

我的oracle資料庫版本是oracle9i,jdbc的驅動是ojdbc14-10.1.0.4.0.jar,作業系統是windows xpp,伺服器是tomcat 4.1

在不安裝oracle客戶端的情況下,使用PLSQL

一般在使用plsql時,會結合oracle客戶端來使用,這樣方便把資料庫連線資訊新增到plsql中。不過oracle客戶端軟體有點龐大,安裝起來不太方便,所以在網上找到一種不依賴oracle客戶端來使用plsql的方法。2 在解壓目錄下新建 network 目錄,然後在network目錄下新建 ad...

CGridCtrl 在vc6下的使用

最近在做乙個小型的進銷存。因為後期要顯示相關的報表資訊。在經過一系列的搜尋 終於選擇使用cgridctrl。為什麼選擇這個呢 乙個是功能的強大。再就是比較靈活。最重要的我選擇這個的原因是可以合併單元格。現在來說說如何使用cgridctrl 我是建立的dialog的程式。我先建立了乙個全域性變數 cg...

關於在oracle中是使用索引的幾點注意事項

例如一列c1在能取值 甲 乙 丙 丁 且均勻分布,則即使在該列建立了索引,資料庫執行時也未必會使用 但是如果取值 丁 的記錄極少,在選擇條件為 c1 丁 根據基於代價的優化器如果能獲得表的統計資訊的話,是會利用上索引而不做全表掃瞄的。例如 select from where c1 123 則即使在列...