1

設定できるプロパティを持つテーブルがありますが、一定時間後に期限切れになるはずです。このようなクエリを実行すると、期待どおりに動作します。

update MY_TABLE
set PROP = :value, PROP_TIMEOUT = dateadd (7 day to CURRENT_TIMESTAMP)
where ID = :id

しかし、同じクエリの一部として計算されたタイムアウトも取得しようとすると、空の結果セットが返され、テーブル内のレコードは更新されません。

update MY_TABLE
set PROP = :value, PROP_TIMEOUT = dateadd (7 day to CURRENT_TIMESTAMP)
where ID = :id
returning PROP_TIMEOUT

これは Firebird のバグですか、それとも何か間違っていますか? FBEMBED バージョン 2.5.1 を使用。

4

1 に答える 1

2

RETURNING [フィールド] を使用する場合は、INTO [変数] を指定する必要があります。INTO は PSQL でのみ使用できます

例:

:
update MY_TABLE
set PROP = :value, PROP_TIMEOUT = dateadd (7 day to CURRENT_TIMESTAMP)
where ID = :id
returning PROP_TIMEOUT
into :ret_prop_timeout; -- variable needs to be declared
:
suspend; -- to return a output row
于 2012-11-22T05:15:43.527 に答える