Как вставить запись с помощью Form Builder и PL/SQL?
Я медленно изучаю SQL и знаю, как использовать построитель форм 6. Ситуация такова, что у меня есть простая таблица с именем 'Players' в таблице. У меня есть три столбца:
- player_no (первичный ключ)
- позиция
- цели
В построителе форм 6 я создал очень простую форму, используя эти три поля. Форма называется "КОМАНДА". В нижней части формы у меня есть кнопка с надписью "Добавить". Цель состоит в том, чтобы пользователь ввел имя игрока, позицию и цели, а затем нажал "Добавить". Эта информация затем перейти в мою таблицу.
Все попытки до сих пор с треском провалились. Я установил триггер на кнопку (WHEN_MOUSE_CLICK). Затем я ввел следующий код:
BEGIN
INSERT INTO players ( player_no )
VALUES ( :TEAM.player_no )
END
В целях тестирования я использовал только одно поле (player_no). Это тогда компилируется без ошибок еще, когда я запускаю форму и ввожу player_no и нажимаю кнопку, я получаю следующую ошибку в строке состояния:
frm-40735: триггер WHEN-MOUSE-CLICK поднял необработанное исключение ORA-01400
Я делаю что-то ужасно неправильно? Я очень плохо знаком с SQL и Form Builder, поэтому любая помощь будет принята с благодарностью.
2 ответа
ORA-01400: невозможно вставить Null. Похоже, что одно из ваших полей не является пустым, и вы пропустили их при вставке. или значение:TEAM.player_no имеет значение null во время вставки.
Также где-то из сети:
FRM-40735: триггер ON-INSERT поднят необработанно У нас была похожая проблема с 11.5.9. Мы очищаем кеш Jinitiator и временные интернет-файлы (инструменты> настройки интернета, затем под временными интернет-файлами кнопка очистки файлов). Кажется, работает.
Одним из преимуществ использования Form Builder является то, что вам почти не нужно самостоятельно писать операторы DML.
Просто создайте блок на основе таблицы - тогда пользователь может добавлять и изменять столько записей, сколько ему нужно, а затем при сохранении (т. Е. COMMIT) среда выполнения Forms автоматически определяет, какие INSERT и UPDATE необходимы для сохранения изменений.