一个老系统,使用C#开发,已经没有服务支持,业务发生变更,只能硬来。
开始时想追踪数据库操作来分析逻辑,数据库是oracle数据库
打开PL/SQL,在菜单中打开:工具--会话,监听数据库的操作会话,记下嫌疑的sql_id
使用查询语句获得具体的sql语句:
select SQL_TEXT,SQL_FULLTEXT,SQL_ID,LOADS,FIRST_LOAD_TIME,PLSQL_EXEC_TIME,JAVA_EXEC_TIME,ROWS_PROCESSED,COMMAND_TYPE,PARSING_USER_ID,PARSING_SCHEMA_ID,PARSING_SCHEMA_NAME,KEPT_VERSIONS,ADDRESS,SERVICE,MODULE,MODULE_HASH,ACTION,CPU_TIME,ELAPSED_TIME,OUTLINE_SID,CHILD_ADDRESS,SQLTYPE,REMOTE,OBJECT_STATUS,LITERAL_HASH_VALUE,LAST_LOAD_TIME,PROGRAM_ID,PROGRAM_LINE#,LAST_ACTIVE_TIME
from v$sql where sql_id= 嫌疑的sql_id
找出了对应的操作语句,基本上能够了解逻辑7788,但是用数据测试还是不能测通。
最后请出反编译软件JetBrains dotPeek 了,这个软件使用C#开发,一下子反编译成功,看着代码,逻辑一下清楚了。