sql >> Databáze >  >> RDS >> Oracle

Oracle automaticky vloží záznam do bloku více záznamů, část 2

DUPLICATE_RECORD je omezená procedura a nemůžete ji použít v WHEN-VALIDATE-RECORD trigger (nebo jakýkoli jiný stejného druhu).

Protože musíte přejít na další záznam (pokud jej chcete zkopírovat), i když zadáte tento omezený postup do jiné programové jednotky PL/SQL se vše jen rozšíří a - nakonec - vyvolat stejnou chybu. Takže ... máte smůlu.

I kdybyste napsali (uloženou) proceduru, která by vložila řádek „Jr“ do databáze někde v zákulisí, museli byste tyto hodnoty načíst na obrazovku. Jako EXECUTE_QUERY je způsob, jak to udělat, a protože jde o (další) omezený postup, nebude fungovat ani to.

Pokud jste plánovali vymazat datový blok a vyplnit jej ručně (pomocí smyčky), museli byste přejít na další (a další a další) záznam pomocí NEXT_RECORD , a to je opět užší řízení. Kromě toho, pokud by šlo o datový blok (a ano, je), ve skutečnosti byste vytvořili duplikáty pro všechny záznamy, jakmile uložíte změny - buď by to selhalo s jedinečným porušením omezení (což je dobré), nebo byste vytvořili duplikáty (což je horší).

BTW co je špatného na WHEN-NEW-RECORD-INSTANCE ? Jaké problémy máte při používání?



  1. MYSQL sum() pro různé řádky

  2. Jak vyprázdním vyrovnávací paměť PRINT v TSQL?

  3. Vložte celou hodnotu DataTable bulk do postgreSQL tabulky

  4. Funkce MYSQL TIMEDIFF dlouhodobě nefunguje