Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection") / 13 сообщений из 13, страница 1 из 1
28.08.2016, 09:08
    #39299101
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Пытаюсь исполнить DA "Execute PL/SQL Code" типа
Код: plsql
1.
INSERT INTO EMP (EMPNO, ENAME) VALUES ( :P27_EMPNO_NEW, :P27_ENAME_NEW);


Выполнив перед этим True Action
Код: html
1.
"Set Value -> Static Assignment -> Value: 2 -> Item(s): P27_EMPNO_NEW"


Получаю:
AJAX call returned server error ORA-01400: невозможно вставить NULL в ("TEST"."EMP"."EMPNO") for Execute PL/SQL Code.

Если в свойствах DA прописываю (что с моей точки зрения делать не обязательно при Ajax-вызове):
Код: html
1.
Page Items to Submit: P27_EMPNO_NEW,P27_ENAME_NEW


Получаю:
Attempt to save item P27_EMPNO_NEW in session state during show processing. Item protection level indicates:
Item may be set when accompanied by a "session" checksum.

No checksum was passed in or the checksum passed in would be suitable for an item with protection level "Item has no protection."
...
Рейтинг: 0 / 0
28.08.2016, 12:10
    #39299129
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Курдль,
- всё таки без триггера тешил?
- непонятен смысл присваивания в переменную в первом шаге, если можно присвоить в
begin
end;
...
Рейтинг: 0 / 0
28.08.2016, 12:17
    #39299134
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Курдль,
такого типа ошибки бывают если забыть передавать значения переменных с сервера на клиент и обратно.
Т.е. не заполнять поля ниже окошка с кодом.
Или не декларативно в коде SetSession(values\items
...
Рейтинг: 0 / 0
28.08.2016, 12:34
    #39299140
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Petro123,

Да триггер ни при чём. Я просто свой код перевожу в понятный всем вид (не буду ж я названиями своих реальных таблиц всем мозг парить).
Вот и пишу EMPNO, да ENAME...
Похоже где-то я с JS-присвоениями наследил :(
Ради чистоты эксперимента создал такую же страницу с другим номером (и с другими именами ITEMs) - в ней всё работает.
...
Рейтинг: 0 / 0
28.08.2016, 13:32
    #39299156
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Курдль,
ну, если работает, тогда ок.
...
Рейтинг: 0 / 0
28.08.2016, 22:09
    #39299242
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Petro123Курдль,
ну, если работает, тогда ок.
Ну, как "Работает"?..
Какого-то фига при сабмите передаются никому не нужные ITEMs и еще и проверяются на protections.
Нас, - истинных перфекционистов, это не может не бесить :)
...
Рейтинг: 0 / 0
28.08.2016, 22:27
    #39299248
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
КурдльКакого-то фига при сабмите передаются никому не нужные ITEMs и еще и проверяются на protections.
ты по русски всё начни по новой. И опиши нчиная от печки.
Апекс на сабмит автоматом передаёт на сервер все айтемсы.
Если ты вдруг на клиенте решил выполнить PL код, то догадайся как это будет сделано?
- передадутся все айтемсы в сессию(на сервер) по AJAX которые указал в поле через запятую
- потом выполнится PL код уже с этими значениями на сервере, а не на клиенте в осле в JS
...
Всё логично.
В чём у тебя проблема я не понял.
...
Рейтинг: 0 / 0
28.08.2016, 22:34
    #39299250
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Petro123,

Проблема возникает не при исполнении кастомного DML, прописанного в DA, а при выполнении стандартного Processing типа Process Row of EMP.
...
Рейтинг: 0 / 0
28.08.2016, 22:50
    #39299255
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
КурдльPetro123,
Проблема возникает не при исполнении кастомного DML, прописанного в DA, а при выполнении стандартного Processing типа Process Row of EMP.
ну, если тебе чернил жалко или лень подробней описать, то удачи!
...
Рейтинг: 0 / 0
29.08.2016, 08:31
    #39299330
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Petro123,

Подробнее порядок действий, после которого возникают проблемы с протекшн, такой:
1. Создаёшь модальый диалог "Сотрудник" по шаблону "форма на основе таблицы или представления"
2. Навешиваешь на него доп. элементы, напр. IR (типа "все объекты, обслуживаемые сотрудником").
3. Навешиваешь функционал "Добавить новый паспорт" для этого создаешь новый item P2_OBJECT_ID
4. Делаешь вложенный модальный диалог "Выбор объекта", поле закрытия которого заполняется поле P2_OBJECT_ID и срабатывает DA Execute PL/SQL: insert into XXX_ALLOCATIONS (EMPNO, OBJECT_ID) values (:P2_EMPNO, :P2_OBJECT_ID);
Refresh Region "все объекты, обслуживаемые сотрудником".
До этого элемента всё норм.
Далее нажимаешь не на CANCEL, а на APPLY и получаешь: Attempt to save item P2_OBJECT_ID in session state during show processing.
...
Рейтинг: 0 / 0
29.08.2016, 10:14
    #39299370
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
не решил ещё проблему?
Попробую воспроизвести, но у меня 4-ка. Всё по другому. Поэтому пиши подробности чтобы даже студент воспроизвёл.
КурдльPetro123,
Подробнее порядок действий, после которого возникают проблемы с протекшн, такой:
1. Создаёшь модальый диалог "Сотрудник" по шаблону "форма на основе таблицы или представления"
== Create Page наверно? На основе мастера "форма на основе таблицы или представления"? И на вопрос ответиь какой там шаблон? Dialog пятёрочный или обычная страница с шаблоном *Region Template (Value Required) = Form Region?
...
Рейтинг: 0 / 0
29.08.2016, 10:58
    #39299396
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Курдль4. Делаешь вложенный модальный диалог "Выбор объекта", поле закрытия которого заполняется поле P2_OBJECT_ID и срабатывает DA Execute PL/SQL: insert into XXX_ALLOCATIONS (EMPNO, OBJECT_ID) values (:P2_EMPNO, :P2_OBJECT_ID);
если это диалог на этой же самой странице, то процессы одного могут пересекаться с процессами другого.
Почему я и не люблю вложенные окна - псевдо модальные.
Нарушаются принципы ООП.
...
Рейтинг: 0 / 0
29.08.2016, 11:17
    #39299410
Курдль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection")
Petro123не решил ещё проблему?
Вроде решил - отключил Value Protected у всех "проблемных" hidden items
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Ошибки при исполнении DA "Execute PL/SQL Code" (либо "ORA-01400", либо "Item protection") / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]