у меня есть процедура, как показано ниже, но когда я попытался запустить его с помощью SQLPLUS его дал мне ошибкуошибка неверный номер ORA-01722 в процедуре
НАЧАТЬ IB_ARCHIVE_FDS («FDS_LOG», «TIME_REQUEST», 5, 6); КОНЕЦ;
ОШИБКА в строке 1: ORA-01722: неправильный номер ORA-06512: на "NIAGA.IB_ARCHIVE_FDS", строка 10 ORA-06512: в строке 1
и я использую Oracle 9i
CREATE OR replace PROCEDURE Ib_archive_fds(table_name VARCHAR2,
column_name VARCHAR2,
success_period NUMBER,
active_period NUMBER)
IS
TYPE fds_tabs
IS TABLE OF ib_fds_log%ROWTYPE INDEX BY PLS_INTEGER;
TYPE fds_message_id
IS TABLE OF ib_fds_log.message_id%TYPE INDEX BY PLS_INTEGER;
v_fds_log FDS_TABS;
v_message_id FDS_MESSAGE_ID;
BEGIN
SELECT *
bulk collect INTO v_fds_log
FROM ib_fds_log2
WHERE direction = 0
AND status_fds_message = 0
AND time_request < Trunc(SYSDATE - ' || SUCCESS_PERIOD || ' - 1);
FOR i IN 1 .. v_fds_log.last LOOP
V_message_id(i) := V_fds_log(i).message_id;
END LOOP;
forall indx IN 1 .. v_fds_log.count
INSERT INTO ib_fds_log3
VALUES V_fds_log(indx);
COMMIT;
forall indx IN 1 .. v_fds_log.count
DELETE FROM ib_fds_log2
WHERE message_id = V_message_id(indx);
COMMIT;
END;
Может ли кто-нибудь помочь мне решить мою проблему здесь.
Что означает 'sysdate - '|| SUCCESS_PERIOD || '- 1' делать? –
@ Colin'tHart - он бросает ORA-01722, в основном ... –
Вот что я подумал, но, будучи утром в понедельник, я был не так уверен. –