﻿# 介紹好用工具：Statement Tracer for Oracle

如果你有開發 Oracle 應用程式，那麼你應該要知道有這套工具，使用 [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/) 最大的好處就在於他可以掃瞄(Sniffer)到你電腦內任何應用程式與 Oracle 資料庫之前的所有 SQL 查詢語法(Statement)，所以當你懷疑你的程式到底送了什麼 SQL Statement 到 Oracle 資料庫的話 ( 例如你用 LINQ to Oracle 進行查詢 )，就可以用這套軟體幫你掃出實際進 Oracle DB 查詢的語法。

![Statement Tracer for Oracle](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/88a119038ef85933d2c2-image_3.png)

使用 [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/) 的前提是：「任何應用程式只要是透過 [SQL\*Net 或 Net8](http://www.orafaq.com/wiki/SQL*Net_FAQ#What_is_SQL.2ANet.2F_Net8.3F) 進行資料庫操作的，就可以利用 [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/) 進行紀錄。」

例如說我先將 [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/) 啟動，然後再開啟 **ASP.NET 開發伺服器** 執行網站時，這時就會抓到所有網站對 Oracle 所發出的任何 SQL Statement 。

![Statement Tracer for Oracle](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/536489063e787344172f-image_3.png "Statement Tracer for Oracle")

不過以我個人的使用經驗來說，好像也有許多 .NET 寫的應用程式並不是每次都可以真的抓到資料，例如我寫一支 Console Program 並且對 Oracle 進行存取時，就從未抓到資料過，不確定是什麼問題？其他連執行 **ASP.NET 開發伺服器** 也有抓不到資料的經驗，實在不清楚是什麼問題？若有人能知道怎麼解決的請留言告訴我，謝謝。

雖然 [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/) 有個 Troubleshooting 的功能，但是即便我的 Console Program 已經被標注綠色了，但是卻還是沒辦法抓到傳送到 Oracle 之間的指令。

![Statement Tracer for Oracle :: Troubleshooting](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/cc9ae22b53206aa82e2b-image_14.png) 

 ![Statement Tracer for Oracle :: Troubleshooting](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/e0302385712fb13d0655-image_17.png)

即便如此，好像也沒有什麼其他的好工具**有機會**抓到應用程式送到 Oracle 的指令，要是有個 Oracle SQL Profiler 工具就好了！ ^^

**相關連結**

-   [Statement Tracer for Oracle](http://www.aboves.com/products/statement_tracer_for_oracle/)
-   [What is SQL\*Net/ Net8?](http://www.orafaq.com/wiki/SQL*Net_FAQ#What_is_SQL.2ANet.2F_Net8.3F)
-   [Oracle FAQ](http://www.orafaq.com/)
