Skip to content
インタ―システムズ製品やソリューション、キャリアの機会などについて、検索してご覧ください。

警告: SQL 更新処理で結果が不正になる

特定のSQL INSERT, UPDATE, DELETE 文で処理の結果が不正になる問題が発生します。

2016年3月8日-警告: SQL 更新処理で結果が不正になる

対象バージョン: Cache/Ensemble 2015.2, 2015.2.1, 2015.2.2
対象プラットフォーム: すべて

[発生する問題]
特定のSQL INSERT, UPDATE, DELETE 文で処理の結果が不正になる問題が発生します。

[問題の詳細]
2つ以上の更新SQL文が入れ子になっている場合にのみこの問題が発生します。
以下は問題が発生する1つの例です:

1. クラスに UPDATE トリガが定義されており、その中で埋め込みSQLによる更新処理がある。
2. SQL が UPDATE トリガ内に埋め込まれているネスト構造となっているため、トリガを発生させた
UPDATE 処理の実行途中で別の UPDATE が実行されます。
(これがこの問題を引き起こす条件です)
3. この例ではトリガ内のSQLで同じテーブルを更新していますが、同じ問題はトリガ内で
別テーブルを更新した場合にも発生する可能性があります。

次のクラス User.Test があるとします。
Class User.Test Extends %Persistent
{
Index idx On (x, y);

Property x As %Integer;
Property y As %Integer;
Property z As %Integer;
Property flg As %Integer;
Property zz As %String;

Trigger UA [ Event = UPDATE, Time = AFTER ]
{
if ({flg}=0) quit
&sql( UPDATE SQLUser.Test
SET flg=0
WHERE x=:{x} and y=:{y} and z=:{z}
)
quit
}
}

このクラス(テーブル)が次のレコードを持っている状態で、
x y z flg zz
123 55 1 0
123 55 2 0
次の UPDATE 文を実行すると1行しか更新されません。

UPDATE SQLUser.Test SET flg=1,zz=’done’ WHERE x=123 and y=55

x y z flg zz
123 55 1 done
123 55 2 0

[解決方法]
この問題は、修正ID: DPV4766, DPV4772 で解決します。
この修正は今後リリースする製品に含まれる予定です。
Cache / Ensemble 2015.2.2 は本件の修正を加えてビルド番号が805から811に変更となりました。

現在対象バージョンをお使いのお客様で修正版にアップグレードされた場合、アプリケーションのすべてのクラスと
ルーチンを再コンパイルする必要がございます。
本件についてご質問等ございましたら インターシステムズジャパン・カスタマサポートセンターまでお知らせください。

最新のアラート&アドバイザリー

2024年 10月 10日
インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare、HealthShare HealthConnect、TrakCare、Caché、および Ensemble の Web ゲートウェイ および CSP ゲートウェイ に影響を与えるセキュリティ脆弱性に対処しました。
2024年 8月 17日
インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または エラーが発生する可能性がある不具合を修正しました。
2024年 8月 7日
HS2024-03 警告通知 には4つの警告が含まれます。 各警告の概要は以下の通りです。 各警告の詳細はリンク先の通知文書に記載されています。
2024年 7月 1日
Broadcom は、データベースアプリケーションにおいてデータ整合性エラーを引き起こす可能性がある問題を発表しました。詳細は、以下の Broadcom のページをご参照ください。
2024年 5月 2日
インターシステムズは、一部の SQL クエリが不正な結果を返す原因となる 3 つの不具合を修正しました。 影響を受けるクエリの詳細については、以下を参照してください。
2023年 11月 21日
InterSystems IRIS for Health, HealthShare Health Connect そしてHealthShare 製品に関して複数の警告(HS2023-02-*)が発表されました。
2023年 11月 15日
InterSystems は SAM (System Alerting & Monitoring) のサポートを終了し、今後は非推奨とすることを決定しました。 InterSystems は本テクノロジーを利用しているお客様のサポートを続けますが、新規プロジェクトでの利用を推奨しません。
2023年 10月 31日
InterSystems は InterSystems IRIS での VxFS ファイルシステムのサポートを終了し、 IRIS 2023.3 から非推奨とすることを決定しました。
2023年 10月 24日
InterSystems は、IRIS 2023.3 から InterSystems Cloud Manager (ICM) の開発を中止し、非推奨とすることを決定しました。

今すぐ申し込む

サポートアラート、重要な問題、
修正、製品リリースに関する通知を受け取ることができます。
*必須項目
Highlighted fields are required
*必須項目
Highlighted fields are required
このフォームを送信することにより、お客様は、サポートアラート、重要な問題、重要なアップデート、修正、および製品リリースに関する通知を電子メールで受け取ることに同意するものとします。 さらに、お客様は、お客様のビジネスコンタクト情報が、米国でホストされている当社のCRMソリューションに入力されることに同意したことになります。お客様情報は、適用されるデータ保護法に従って維持されます。
**送信ボタンをクリックすることにより、お客様は、既存および将来のインターシステムズ製品、提供物、イベントに関するニュース、更新、その他のマーケティング目的のために連絡を受けることに同意します。