sql >> Database >  >> RDS >> Oracle

Oracle SQL:een veld lezen en verhogen

In dit specifieke geval is een sequentie de juiste oplossing zoals vermeld. Maar als u in een toekomstige situatie zowel iets moet bijwerken als een waarde in dezelfde instructie moet retourneren, kunt u de RETURNING gebruiken clausule:

UPDATE atable SET foo = do_something_with(foo) RETURNING foo INTO ?

Als de landcode PL/SQL is, vervangt u de ? met een lokale PL/SQL-variabele; anders kun je het binden als een uitvoerparameter in je programma.

Bewerken:aangezien je Perl noemde, zou zoiets moeten werken (niet getest):

my $sth = $dbh->prepare('UPDATE mytable SET idnext = idnext + 1 returning idnext into ?');
my $idnext;
$sth->bind_param_inout(1, \$idnext, 8);
$sth->execute; # now $idnext should contain the value

Zie DBI .



  1. Hoe vind ik dubbele waarden in een tabel in Oracle?

  2. ORA-00927:ontbreekt gelijkteken

  3. Meest efficiënte manier om het aantal rijen in de tabel te krijgen

  4. Spel omzetten! framework evolutie van MySQL naar PostgreSQL