sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL:Hur man läser och ökar ett fält

I just detta fall är en sekvens den rätta lösningen som nämnts. Men om du i någon framtida situation behöver både uppdatera något och returnera ett värde i samma uttalande, kan du använda RETURNING klausul:

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

Om anropskoden är PL/SQL, byt ut ? med en lokal PL/SQL-variabel; annars kan du binda den som en utdataparameter i ditt program.

Edit:Eftersom du nämnde Perl borde något sådant här fungera (otestat):

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

Se DBI .



  1. Korrekt escape av avgränsade identifierare i SQL Server utan att använda QUOTENAME

  2. Hur man analyserar varchar2 och gör det till flera rader?

  3. Visa Mysql-tabellfältvärden i rutan Välj

  4. Mysql Motsvarighet till php-metafon och soundex