일부 RDBMS에는 실행 된 SQL 쿼리가 기록되는 기능이 있습니다 (예 : SQL Server에 SQL Server 프로파일 러가 있음). RDBMS에이 기능이 없다면 네트워크의 일부 프록시 (웹 응용 프로그램 ----> 사용자의 프록시 ----> RDBMS)로 SQL 쿼리를 잡을 수 있습니다.
입력 값과 녹음 된 쿼리를 쌍으로 연결해야합니다.
코드에서 SQL 쿼리를 검색 할 때의 문제점은 매우 복잡하며 불가능하다고 생각합니다. SQL 조회는 일반 텍스트 형식이 아니거나 동적으로 작성 될 수 있습니다. 예를 들어
:
// this will produce SQL query
from p in db.Products where p.Size > 1000 && p.Count < 5 order by p.Name select p;
// this will not produce any SQL query
from c in ColumnsOf(db.Products) where c.Contains("Name") select c.Type;
// this will produce SQL query
var tmp = "SELECT ";
for(int i = 0; i < columns.Length; i++) {
if (i > 0) { tmp += ", "; }
tmp += columns[i].Name;
}
tmp += "FROM " + someTextVariable;