Ошибка запуска Oracle 10gR2
У меня Oracle 10gR2. Я пытаюсь создать автоинкрементный триггер. Вот образец:
CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1
START WITH 1
NOMAXVALUE
/
CREATE TABLE TESTER (
ID_TESTER INTEGER NOT NULL,
VAL VARCHAR2(20) NOT NULL
)
/
CREATE OR REPLACE TRIGGER TIB_TESTER BEFORE INSERT
ON TESTER FOR EACH ROW
BEGIN
SELECT TEST_SEQ.NEXTVAL
INTO :NEW.ID_TESTER
FROM DUAL;
END;
/
Создание триггера выдает предупреждение:
предупреждение: ORA-24344: успех с ошибкой компиляции
И когда я получаю значение ошибки:
select OCI_SUCCESS_WITH_INFO;
/
Это дает ошибку:
ошибка: ORA-00923: ключевое слово FROM не найдено там, где ожидается
2 ответа
Какой клиент вы используете для выполнения этих команд? ORA-24344 является специфической ошибкой.
В SQL*PLus мы можем получить больше информации об ошибках компиляции, например:
SQL> show errors
Что касается ошибки ORA-00923, то это потому, что в версии Oracle для Oracle нам всегда приходится выбирать из таблицы. Так что вы должны выполнить
select OCI_SUCCESS_WITH_INFO
from dual
/
Я не уверен, насколько это имеет смысл, но, по крайней мере, вы не получите ошибку.
"Это была проблема Navicat"
Меня это не удивляет, так как я проверил ваш код по моей базе данных, и он был построен без проблем.
Может быть, это кому-нибудь пригодится
Если вы используете Oracle 10g и драйвер OCI, ORA-24344 показывает, когда триггер имеет знак возврата каретки (\r) в коде, например. Файл был создан с использованием стиля конца строки в Windows.