Oracle のJDBCの場合、デバッグ用のドライバを使えばトレースが取れる。
%ORACLE_HOME%\jdbc\lib\ojdbc14_g.jar を %CLASSPATH% に通して、実行時に
java -Doracle.jdbc.LogFile=true -Doracle.jdbc.LogFile=./oracle.log application
で、とすればカレントのoracle.logにトレースされる↓
%ORACLE_HOME%\jdbc\lib\ojdbc14_g.jar を %CLASSPATH% に通して、実行時に
java -Doracle.jdbc.LogFile=true -Doracle.jdbc.LogFile=./oracle.log application
で、とすればカレントのoracle.logにトレースされる↓
DRVR OPER Enabled logging (moduleMask 0x0fffffff, categoryMask 0x0000008f) DRVR OPER OracleConnection.setAutoCommit(autoCommit=true) DRVR OPER OracleConnection.setAutoCommit(autoCommit): return DRVR OPER OracleConnection.getDefaultFixedString() returning false DRVR SQLS SQL: "ALTER SESSION SET NLS_LANGUAGE = 'JAPANESE'" DRVR SQLS Input SQL: "ALTER SESSION SET NLS_LANGUAGE = 'JAPANESE'" DRVR OPER OracleConnection.getAutoCommit() returned true DRVR OPER OracleStatement.cleanupForBatching() DRVR SQLS SQL: "ALTER SESSION SET NLS_TERRITORY = 'JAPAN'" DRVR SQLS Input SQL: "ALTER SESSION SET NLS_TERRITORY = 'JAPAN'" DRVR OPER OracleConnection.getAutoCommit() returned true DRVR OPER OracleStatement.cleanupForBatching() DRVR OPER OracleStatement.executeQuery(sql) DRVR SQLS SQL: "SELECT VALUE FROM NLS_INSTANCE_PARAMETERS WHERE PARAMETER ='NLS_DATE_FORMAT'" DRVR SQLS Input SQL: "SELECT VALUE FROM NLS_INSTANCE_PARAMETERS WHERE PARAMETER ='NLS_DATE_FORMAT'" DRVR OPER OracleConnection.getAutoCommit() returned true DRVR OPER OracleResultSetImpl.getString(columnIndex=1) DRVR OPER OracleConnection.setAutoCommit(autoCommit=false) DRVR OPER OracleConnection.setAutoCommit(autoCommit): return DRVR OPER OracleConnection.getDefaultFixedString() returning false DRVR OPER ResultSetUtil.needIdentifier(typeCode=2): return: true DRVR SQLS SQL: " SELECT name FROM master WHERE id=?" DRVR OPER OracleConnection.getDefaultFixedString() returning false DRVR OPER ResultSetUtil.needIdentifier(typeCode=1): return: false DRVR SQLS Input SQL: " SELECT id FROM master WHERE id=?" DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DBAC OPER DBItem.clone(_dbtype=oracle.jdbc.ttc7.v8TTIoac@191e4c, _dbaccess=oracle.jdbc.ttc7.TTC7Protocol@1df164) DRVR OPER OracleResultSetImpl.findColumn(columnName=id) DRVR OPER OracleResultSetImpl.getString(columnIndex=1) DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999 or 1=1) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999' or '1'='1) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999' or 1=1) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999' or 1=1) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DRVR OPER OraclePreparedStatement.setString(paramIndex=1, x=9999999'; SELECT name FROM master WHERE 1=1) DRVR OPER OraclePreparedStatement.executeQuery() DRVR OPER OraclePreparedStatement.executeUpdate() DRVR OPER OracleConnection.getAutoCommit() returned false DRVR OPER OracleResultSetImpl.close() DRVR OPER OraclePreparedStatement.sendBatch() DRVR OPER OracleConnection.close()