Есть ли способ повторить (скажем, повторить 3 раза) ВСТАВИТЬ
Это может быть один из способов.Запустите INSERT
в цикле и пропустите цикл, если вставлена хотя бы одна строка, в противном случае повторите попытку 3 раза.Однако следует помнить, что эта операция будет выполняться вставкой 3 раза, если не было вставлено ни одной строки.Вы можете смягчить его, проверив перед запуском вставку, если это так.
SET SERVEROUTPUT ON;
DECLARE
dblink_err EXCEPTION;
PRAGMA EXCEPTION_INIT(dblink_err, -3113);
BEGIN
FOR i IN 1..3 LOOP
BEGIN
INSERT INTO tst@urdblink ( id ) VALUES ( 3 );
EXIT WHEN SQL%rowcount > 0;
EXCEPTION
WHEN dblink_err THEN
dbms_output.put_line(sqlcode || ' ERROR occured: Retrying');
END;
END LOOP;
END;
/