Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle automatycznie wstawia rekord w bloku multirecord część 2

DUPLICATE_RECORD jest procedurą ograniczoną i nie można jej użyć w WHEN-VALIDATE-RECORD wyzwalacz (lub dowolny inny tego samego rodzaju).

Ponieważ musisz przejść do następnego rekordu (jeśli chcesz go skopiować), nawet jeśli zastosujesz tę procedurę ograniczoną do innej jednostki programu PL/SQL, wszystko będzie się po prostu rozprzestrzeniać i - ostatecznie - podnoszą ten sam błąd. Więc... nie masz szczęścia.

Nawet jeśli napisałbyś procedurę (przechowywaną), która wstawiałaby ten wiersz "Jr" do bazy danych gdzieś za sceną, musiałbyś pobrać te wartości na ekran. Jako EXECUTE_QUERY jest to sposób na zrobienie tego, a ponieważ jest to (kolejna) procedura ograniczona, to również nie zadziała.

Jeśli planujesz wyczyścić blok danych i wypełnić go ręcznie (za pomocą pętli), będziesz musiał przejść do następnego (i następnego i następnego) rekordu za pomocą NEXT_RECORD , i to znowu procedura ograniczona. Poza tym, gdyby był to blok danych (a tak, tak jest), faktycznie utworzyłbyś duplikaty dla wszystkich rekordów, gdy zapisałeś zmiany, więc albo zawiedzie z naruszeniem unikatowego ograniczenia (co jest dobre), albo utworzysz duplikaty (co jest gorsze).

BTW, co jest nie tak z WHEN-NEW-RECORD-INSTANCE ? Jakie masz problemy podczas korzystania z niego?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLPlus próbuje dwukrotnie usunąć pakiet

  2. Jak wybrać konkretny element z tablicy JSON w Oracle typu JSON CLOB

  3. Czas życia multiemisji Java zawsze wynosi 0

  4. JAXB 2 w aplikacji internetowej Oracle 10g

  5. Oracle, dodawanie wiodących zer do łańcucha (nie liczby)