基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
升级 JDBC 后 sql_audit 中 param_value 列全部为空
更新时间:2026-05-25 01:56
问题现象
在存在问题的 OceanBase 数据库版本中,使用 JDBC V2.2.7.6 版本(oceanbase-client-2.2.7.6.jar)执行带参数的 SQL 可以看到对应 SQL 在 GV$SQL_AUDIT 视图中都有 PARAM_VALUE,升级 JDBC 到新版本 V2.4.5 版本(oceanbase-client-2.4.5.jar)可以看到都没有 PARAM_VALUE。
老版本驱动 oceanbase-client-2.2.7.6.jar
MySQL [oceanbase]> select usec_to_time(request_time),user_client_ip,elapsed_time,params_value,query_sql from gv$sql_audit where query_sql like '%SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POS%' order by request_time desc limit 20; +----------------------------+----------------+--------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | usec_to_time(request_time) | user_client_ip | elapsed_time | params_value | query_sql | +----------------------------+----------------+--------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 2023-10-13 11:21:11.605987 | xxx.xx.xxx.xxx | 1838 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:21:11.608764 | xxx.xx.xxx.xxx | 101564 | '13515370007','g1008908','2023-10-13 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:21:11.921517 | xxx.xx.xxx.xxx | 3557 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:21:11.926150 | xxx.xx.xxx.xxx | 641344 | '13515370007','g1008908','2023-10-13 00:00:00','2023-10-13 23:59:59','stcmNml','0' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:21:38.171480 | xxx.xx.xxx.xxx | 10229 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:21:38.194638 | xxx.xx.xxx.xxx | 34048 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','0' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:22:09.636637 | xxx.xx.xxx.xxx | 2114 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:22:09.639034 | xxx.xx.xxx.xxx | 147118 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:22:09.799181 | xxx.xx.xxx.xxx | 4712 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:22:09.804161 | xxx.xx.xxx.xxx | 1156892 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:02.540711 | xxx.xx.xxx.xxx | 13003 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:02.613034 | xxx.xx.xxx.xxx | 73 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:02.613721 | xxx.xx.xxx.xxx | 48634 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:32.950281 | xxx.xx.xxx.xxx | 58201 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:33.041884 | xxx.xx.xxx.xxx | 161288 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','0' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:46.047832 | xxx.xx.xxx.xxx | 13550 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:23:46.132146 | xxx.xx.xxx.xxx | 191241 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:24:07.439290 | xxx.xx.xxx.xxx | 15573 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:24:07.516379 | xxx.xx.xxx.xxx | 33826 | '','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:32:45.620899 | xxx.xx.xxx.xxx | 153 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:32:45.621986 | xxx.xx.xxx.xxx | 19292 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:32:45.659780 | xxx.xx.xxx.xxx | 89 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 11:32:45.660588 | xxx.xx.xxx.xxx | 229575 | '13515370007','g1008908','2023-10-04 00:00:00','2023-10-13 23:59:59','stcmNml','0' | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | +----------------------------+----------------+--------------+------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 23 rows in set (6.22 sec)注意
可以看到 SQL 有 PARAM_VALUE 的值。
新版本驱动 oceanbase-client-2.4.5.jar
MySQL [oceanbase]> select usec_to_time(request_time),user_client_ip,elapsed_time,params_value,query_sql from gv$sql_audit where query_sql like '%SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POS%' and usec_to_time(request_time)>'2023-10-13 14:30:00' order by request_time desc limit 20; +----------------------------+----------------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | usec_to_time(request_time) | user_client_ip | elapsed_time | params_value | query_sql | +----------------------------+----------------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 2023-10-13 14:43:32.943112 | | 135 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 14:43:32.886470 | xxx.xx.xxx.xxx | 55710 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 14:43:32.885315 | xxx.xx.xxx.xxx | 114 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM ( SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, TO_CHAR(B.PAYID) POSFORMNUM, TO_NUMBER(B.STATUS) BANKSTATUS, DECODE(SIGN(B.FEE), -1, (-1)*B.FEE, B.FEE) EXCHANGEAMT, '' NOTE, B.STATUSDATE BANKSTATUSDATE FROM RECEPTION A, CS_ORDER_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND LENGTH(REGEXP_REPLACE(A.ORDERID, '[^0-9]', '')) = LENGTH(A.ORDERID) AND A.ORDERID = B.ORDERID AND A.STATUS = ? AND B.PAYTYPE LIKE 'ThirdParty%' AND B.STATUS IN (0, 1, 9) AND B.STATUS = NVL(?, B.STATUS) ) C ORDER BY C.RECDATE DESC | | 2023-10-13 14:43:32.789248 | | 94 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 14:43:32.771627 | xxx.xx.xxx.xxx | 16859 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | | 2023-10-13 14:43:32.768153 | xxx.xx.xxx.xxx | 147 | | SELECT REGION, OID, FORMNUM, ORDERID, SERVNUMBER, RECDATE, RECDEFID, SUBRECDEFID, PAYTYPE, POSFORMNUM, BANKSTATUS, EXCHANGEAMT, NOTE, BANKSTATUSDATE FROM (SELECT A.REGION, A.OID, A.FORMNUM, A.ORDERID, A.SERVNUMBER, A.RECDATE, A.RECDEFID, A.SUBRECDEFID, B.PAYTYPE, B.POSFORMNUM, 0 BANKSTATUS, 0 EXCHANGEAMT, '' NOTE, SYSDATE BANKSTATUSDATE FROM RECEPTION A, REC_PAYTYPE B WHERE A.REGION = 537 AND A.SERVNUMBER = NVL(?, A.SERVNUMBER) AND A.RECOPID = NVL(?, A.RECOPID) AND A.RECDATE BETWEEN ? AND ? AND (A.ISROLLBACK = 1 OR A.RECDEFID IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'orderCommitButBackFeeRecType' AND STATUS = 1)) AND B.REGION = 537 AND A.OID = B.OID AND A.STATUS = ? AND B.PAYTYPE IN(SELECT DICTID FROM DICT_ITEM WHERE GROUPID = 'LastRefundFeePayType') ) C ORDER BY C.RECDATE DESC | +----------------------------+----------------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 6 rows in set (1.76 sec)注意
可以看到都没有 PARAM_VALUE 的值。
关键诊断信息
触发条件
JDBC 升级。
事前巡检
使用高于 oceanbase-client-2.2.6 版本的JDBC驱动。Oracle 模式下默认开启 cursor(V2.2.6 版本中,默认不开启 cursor)。
使用存在问题的 OceanBase 数据库 V3.2.3 BP10 Hotfix3 之前的版本并且使用的 JDBC 版本高于 V2.2.6。
事后诊断
执行带参数的 SQL,但是查询
GV$SQL_AUDIT视图发现PARAM_VALUE全部为空。客户链接串没有设置开启 cursor 的参数,但是抓包新驱动发包时协议 flags =1 开启了 cursor,JDBC V2.4.7.1 以下版本无法显式关掉 cursor。

问题原因
PARAM_VALUE 实现的时候没有考虑 cursor 的审计信息记录,需要对 cursor 的审计信息在 inner_open 阶段进行单独处理,客户遇到场景是升级到新版本 JDBC 驱动后是默认开启 cursor 由于代码层面没做 sql audit record 所以看不到 PARAM_VALUE 的值。
问题的风险及影响
OceanBase 数据库执行带参数的 SQL 在 GV$SQL_AUDIT 视图中 PARAM_VALUE 缺失。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响的版本
OceanBase 数据库 V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本、V3.2.4 GA(oceanbase-3.2.4.0-100000072022102819)及之后版本。
解决方法及规避方式
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V3.2.3 BP10 Hotfix3(oceanbase-3.2.3.3-110030012023101913)、V3.2.3 BP10 Hotfix4(oceanbase-3.2.3.3-110040022023110614)、V3.2.3 BP10 Hotfix5(oceanbase-3.2.3.3-110050012023112210)、V3.2.3 BP10 Hotfix6(oceanbase-3.2.3.3-110060012024011615)、V3.2.3 BP10 Hotfix7(oceanbase-3.2.3.3-110070012024012316)、V3.2.3 BP10 Hotfix8(oceanbase-3.2.3.3-110080012024022713)、V3.2.3 BP10 Hotfix9(oceanbase-3.2.3.3-110090012024041611)、V3.2.3 BP10 Hotfix10(oceanbase-3.2.3.3-110100012024042814)、V3.2.3 BP10 Hotfix11(oceanbase-3.2.3.3-110110032024052217)、V3.2.3 BP10 Hotfix12(oceanbase-3.2.3.3-110120012024060510)、V3.2.3 BP10 Hotfix13(oceanbase-3.2.3.3-110130012024061819)、V3.2.3 BP10 Hotfix14(oceanbase-3.2.3.3-110140012024082010)、V3.2.3 BP10 Hotfix15(oceanbase-3.2.3.3-110150012024102111)、V3.2.3 BP10 Hotfix16(oceanbase-3.2.3.3-110160012025021315)、V3.2.3 BP10 Hotfix17(oceanbase-3.2.3.3-110170012025032112)、V3.2.3 BP10 Hotfix18(oceanbase-3.2.3.3-110180012025060316)、V3.2.3 BP10 Hotfix19(oceanbase-3.2.3.3-110190022025082615)、V3.2.3 BP10 Hotfix20(oceanbase-3.2.3.3-110200012025111317)、V3.2.3 BP11(oceanbase-3.2.3.3-111000032024070822)、V3.2.4 BP5(oceanbase-3.2.4.5-105000012023081513)。
规避方式
新版本驱动默认开启 cursor 无法关闭,升级到已经修复的 OBServer 来彻底解决。