我想编写一个过程,将记录从SYS.AUD $复制到AUDIT_USER.AUDIT_HISTORY_TABLE,然后截断SYS.AUD $。我希望仅在复制/插入进展顺利的情况下执行Truncate。
是这样的:
CREATE OR REPLACE PROCEDURE proc_copy_records_and_then_delete
IS
BEGIN
DECLARE number_of_records NUMBER(900000000) :=SELECT COUNT(*) FROM SYS.AUD$;
insert into AUDIT_USER.AUDIT_HISTORY_TABLE select * from SYS.AUD$;
IF number_of_records <= rows_inserted THEN
COMMIT;
TRUNCATE TABLE SYS.AUD$;
/
所以我只想在将记录插入到另一个表中的情况下才截断SYS.AUD $表。
答案 0 :(得分:1)
您可以尝试这样做。我没有测试此解决方案,但是它应该可以让您了解如何做到这一点
def checkForHash(h, fname):
with open(fname) as f:
for i, line in enumerate(f):
if h == line:
return i
return -1
x = '0000000A0E3B9F25FF41DE4B5AC238C2D545C7A8:15'
checkForHash (x, 'testfile.txt')