このディレクトリの索引

# 出典: SQL質疑応答スレ 14問目 #935 # # ・DBMS名とバージョン Oracle11gR2 # PL/SQLのプログラムを作ってるのですが期待通り動作しておらず、その理由を知りたく思ってます # # テーブルA # a1 | a2 # --------- # 100 | 1 # 100 | 2 # 200 | 3 # というテーブルにて、a1='100'のレコードについては、a2に100を加算、といった処理をしたい。 # :- dynamic(テーブルA/2). テーブルA('100',1). テーブルA('100',2). テーブルA('200',3). 'テーブルA a1 | a2 --------- 100 | 1 100 | 2 200 | 3 というテーブルにて、a1=\'100\'のレコードについては、a2に100を加算、といった処理をしたい。' :- 'テーブルAのa1=\'100\'のレコードについては、テーブルAのa2に100を加算'. 'テーブルAのa1=\'100\'のレコードについては、テーブルAのa2に100を加算' :- forall('テーブルAのa1=\'100\'のレコードについては、'(_a1,_a2), 'テーブルAのa2に100を加算'(_a1,_a2)). 'テーブルAのa1=\'100\'のレコードについては、'(_a1,_a2) :- _a1 = '100', retract(テーブルA(_a1,_a2)). 'テーブルAのa2に100を加算'(_a1,_a2) :- _a2_2 is _a2 + 100, assertz(テーブルA(_a1,_a2_2)).