问题描述
嗨,
我有一个关于Oracle审计功能以及如何使用创建的数据的问题。
出于测试目的,我使用Oracle Auditing从架构中的4个表中收集了一些DML数据。
现在,我可以在dba_common_audit_trail视图中看到大量的条目,并且在这些条目中,我有SQL_TEXT和SQL_BIND列。
要重现原始工作负载,我需要将SQL_BIND信息合并到SQL_TEXT中,以创建用于测试的INSERT,UPDATE,DELETE语句包。
是否有任何功能可以合并此数据或如何实现所需的结果?
样本数据:
感谢您的任何帮助!
我有一个关于Oracle审计功能以及如何使用创建的数据的问题。
出于测试目的,我使用Oracle Auditing从架构中的4个表中收集了一些DML数据。
现在,我可以在dba_common_audit_trail视图中看到大量的条目,并且在这些条目中,我有SQL_TEXT和SQL_BIND列。
要重现原始工作负载,我需要将SQL_BIND信息合并到SQL_TEXT中,以创建用于测试的INSERT,UPDATE,DELETE语句包。
是否有任何功能可以合并此数据或如何实现所需的结果?
样本数据:
SQL_TEXT = 'INSERT INTO NAINFOWLTTOSAP ( NAID, NAART, STATUS, SATZSUMME, UEBERTRAGENDURCH, WIEDERHOLUNGSZAEHLER, BENUTZERNR, KLASSE, ERSTELLDATUM, BEARBEITUNGSDATUM, ARCHIVDATUM, FEHLERNR, FEHLERTEXT, BUCHUNGNR, LASTSAPTRAN, LASTSAPTRANNR ) VALUES ( :B16 , :B15 , :B14 , :B13 , :B12 , :B11 , :B10 , :B9 , :B8 , :B7 , :B6 , :B5 , :B4 , :B3 , :B2 , :B1 )' SQL_BIND = ' #1(7):2808660 #2(3):500 #3(4):2001 #4(1):2 #5(1):7 #6(1):0 #7(3):333 #8(1):7 #9(17):1/7/2021 14:27:52 #10(0): #11(0): #12(0): #13(0): #14(11):LVS18759643 #15(0): #16(0): `
感谢您的任何帮助!
专家解答
我不确定您所说的 “合并此数据” 是什么意思。审核是为了让您记录发生的事情; 它不打算用于重建工作负载。如果这是您的目标,则可能需要研究实际的应用程序测试。
这就是说,您可以使用您最喜欢的CSV到行技巧来拆分绑定变量的值,例如:
然后使用这些运行相应的语句。
你如何做到这一点取决于你的应用程序和你的目标。您可以使用这些来创建一系列SQL脚本,但是很难使这些脚本反映应用程序的工作负载。可能有 (非SQL) 代码处理事务中的语句之间的数据,并发效果等。
这就是说,您可以使用您最喜欢的CSV到行技巧来拆分绑定变量的值,例如:
with rws as (
select '#1(7):2808660 #2(3):500 #3(4):2001 #4(1):2 #5(1):7 #6(1):0 #7(3):333 #8(1):7 #9(17):1/7/2021 14:27:52 #10(0): #11(0): #12(0): #13(0): #14(11):LVS18759643 #15(0): #16(0):' vs
from dual
)
select regexp_substr ( vs, '[^#]+', 1, r )
from rws, lateral (
select level r from dual
connect by level <= regexp_count ( vs, '#[0-9]+' )
);
REGEXP_SUBSTR(VS,'[^#]+',1,R)
1(7):2808660
2(3):500
3(4):2001
4(1):2
5(1):7
6(1):0
7(3):333
8(1):7
9(17):1/7/2021 14:27:52
10(0):
11(0):
12(0):
13(0):
14(11):LVS18759643
15(0):
16(0):然后使用这些运行相应的语句。
你如何做到这一点取决于你的应用程序和你的目标。您可以使用这些来创建一系列SQL脚本,但是很难使这些脚本反映应用程序的工作负载。可能有 (非SQL) 代码处理事务中的语句之间的数据,并发效果等。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




