sql >> Databasteknik >  >> RDS >> Oracle

Oracle infogar automatiskt post i multirecord-block del 2

DUPLICATE_RECORD är ett begränsat förfarande och du kan inte använda det i WHEN-VALIDATE-RECORD trigger (eller någon annan av samma slag).

Eftersom du måste navigera till nästa post (om du vill kopiera den), även om du sätter den begränsade proceduren in i en annan PL/SQL-programenhet kommer allt bara att spridas och - i slutändan - ta upp samma fel. Så ... du har ingen tur.

Även om du skrev en (lagrad) procedur som skulle infoga den där "Jr"-raden i databasen någonstans bakom scenen, måste du hämta dessa värden till skärmen. Som EXECUTE_QUERY är sättet att göra det, och eftersom det är (ännu ett) selektivt förfarande, kommer det inte heller att fungera.

Om du planerade att rensa datablock och fylla det manuellt (genom att använda en slinga), måste du navigera till nästa (och nästa, och nästa) post med NEXT_RECORD , och det är återigen ett selektivt förfarande. Dessutom, om det var ett datablock (och ja, det är det), skulle du faktiskt skapa dubbletter för alla poster när du väl hade sparat ändringar så - antingen skulle det misslyckas med unika begränsningsöverträdelser (vilket är bra), eller så skapar du dubbletter (vilket är värre).

BTW, vad är det för fel på WHEN-NEW-RECORD-INSTANCE ? Vilka problem har du när du använder den?



  1. SQL, hur man tar bort data och tabeller

  2. Analysera HTML-tabell med Oracle

  3. få datum för alla lördagar under ett givet år - sql-server

  4. Varför kan jag inte ansluta direkt till min MySQL RDS DB-instans? (Jag kan bara ansluta via SSHing till en EC2)