DUPLICATE_RECORD
er en begrænset procedure, og du kan ikke bruge den i WHEN-VALIDATE-RECORD
trigger (eller enhver anden af samme slags).
Som du skal navigere til den næste post (hvis du vil kopiere den), selvom du sætter den begrænsede procedure ind i en anden PL/SQL-programenhed, vil alt bare udbredes og - i sidste ende - rejse den samme fejl. Så ... du er uheldig.
Selvom du skrev en (lagret) procedure, som ville indsætte den "Jr"-række i databasen et sted bag scenen, ville du skulle hente disse værdier til skærmen. Som EXECUTE_QUERY
er måden at gøre det på, og da det er (endnu en) begrænset procedure, vil det heller ikke fungere.
Hvis du planlagde at rydde datablok og udfylde den manuelt (ved at bruge en løkke), skulle du navigere til næste (og næste og næste) post med NEXT_RECORD
, og det er igen en begrænset procedure. Desuden, hvis det var en datablok (og ja, det er det), ville du faktisk oprette duplikater for alle registreringer, når du først har gemt ændringer så - enten ville det mislykkes med en unik overtrædelse af begrænsninger (hvilket er godt), eller du vil oprette dubletter (hvilket er værre).
BTW hvad er der galt med WHEN-NEW-RECORD-INSTANCE
? Hvilke problemer har du, når du bruger det?