id | name | para_name | seq | para_value |
test | a | p1 | 1 | a1 |
test | a | p1 | 2 | b1 |
test | a | p1 | 3 | c1 |
test | a | p2 | 1 | o9 |
UPDATE TestTable SET parm_value = '입력 값' where id = :id and name = :name and seq = '입력 값' and parm_name = '입력 값' ;
여러번 수정해야 하는 경우 for문 돌려서 입력 값만 바꿔가며 한번 씩 실행하고 있는데요.
이걸 한번에 하는 쿼리를 만들 순 없나요?
예를 들어서 insert 할때에는
insert all
for문
{
into test ( )
values ( )
}
select * from daul
이런식으로 사용했습니다.
혹시 비슷한 방법이 있나 질문드립니다.
MERGE INTO TestTable a USING ( SELECT 'test' id, 'a' name, 'p1' para_name, 1 seq, 'a1' para_value FROM dual UNION ALL SELECT 'test', 'a', 'p1', 2, 'b1' FROM dual UNION ALL SELECT 'test', 'a', 'p1', 3, 'c1' FROM dual UNION ALL SELECT 'test', 'a', 'p2', 1, 'o9' FROM dual ) b ON ( a.id = b.id AND a.name = b.name AND a.para_name = b.para_name AND a.seq = b.seq ) WHEN MATCHED THEN UPDATE SET a.para_value = b.para_value ;