Dalam kasus khusus ini, urutan adalah solusi yang tepat seperti yang disebutkan. Tetapi jika dalam beberapa situasi di masa mendatang Anda perlu memperbarui sesuatu dan mengembalikan nilai dalam pernyataan yang sama, Anda dapat menggunakan RETURNING
klausa:
UPDATE atable SET foo = do_something_with(foo) RETURNING foo INTO ?
Jika kode panggilannya adalah PL/SQL, ganti ? dengan variabel PL/SQL lokal; jika tidak, Anda dapat mengikatnya sebagai parameter keluaran dalam program Anda.
Sunting:Karena Anda menyebutkan Perl, sesuatu seperti ini seharusnya berfungsi (belum diuji):
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
Lihat DBI .