Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle автоматично вмъква запис в блок с множество записи, част 2

DUPLICATE_RECORD е ограничена процедура и не можете да я използвате в WHEN-VALIDATE-RECORD тригер (или друг от същия вид).

Тъй като трябва да преминете към следващия запис (ако искате да го копирате), дори ако поставите тази ограничена процедура в друга PL/SQL програмна единица, всичко просто ще разпространи и - в крайна сметка - повдига същата грешка. Така че ... нямате късмет.

Дори ако сте написали (съхранена) процедура, която ще вмъкне този ред "Jr" в базата данни някъде зад сцената, ще трябва да извлечете тези стойности на екрана. Като EXECUTE_QUERY е начинът да го направите и тъй като това е (още една) ограничена процедура, това също няма да работи.

Ако сте планирали да изчистите блока с данни и да го попълните ръчно (чрез използване на цикъл), ще трябва да преминете към следващия (и следващия, и следващия) запис с NEXT_RECORD , и това отново е ограничена процедура. Освен това, ако това беше блок с данни (и да, такъв е), всъщност бихте създали дубликати за всички записи, след като запазите промените, така че - или ще се провали с нарушение на уникалното ограничение (което е добре), или ще създадете дубликати (което е по-лошо).

BTW какво не е наред с WHEN-NEW-RECORD-INSTANCE ? Какви проблеми имате, когато го използвате?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 12c колони IDENTITY

  2. Регистриране на Oracle Java Съхранена процедура с помощта на Java Logging API (java.util.logging)

  3. EntityFramework Code First Oracle

  4. Картографирането на съставен ключ с Hibernate създава необработено поле в Oracle

  5. Създайте водеща нула в Oracle