2012-11-13 3 views
1

변경되지 않았습니다 :PL SQL 업데이트는 하나 개의 창에서 작업하지만 난 다시 기록을 인출 할 때 그렇게 PLSQL 개발자에

UPDATE someTable t 
    SET animals  = 'hamsters' 
    WHERE t.someIdentifier = 'XXXX'; 
SELECT * 
FROM someTable t 
WHERE t.someIdentifer = 'XXXX'; 

실제로 확인 않습니다 마지막 줄에서 선택 쿼리로 작업 표시 그 동물들은 가치 '햄스터'와 같게 설정되었습니다. 그러나

, 나는 그것의 자신의 선택 쿼리를 실행

select * from someTable t WHERE t.someIdentifier = 'XXXX'; 

동물은 업데이트 한 것 같지 않습니다. 이 문제가 어디에서오고 있는지에 대한 일반적인 포인터는 인정 될 것이다.

+1

당신은 커밋나요? –

답변

3

먼저 업데이트 트랜잭션을 커밋해야합니까? 업데이트 아래에 커밋 추가하려고 :

UPDATE someTable t 
SET animals  = 'hamsters' 
WHERE t.someIdentifier = 'XXXX'; 
commit; 

한 번 더 옵션을 권장하지 있습니다,하지만 알고 좋은 :

SET autocommit ON 
+0

IMO'SET autocommit ON'은 나쁜 조언이다 ... 어떻게 작동하는지 이해하는 대신 트랜잭션 관리를 던져라 :) –

+0

@VincentMalgrat 예, 나는이 옵션도 권장하지 않지만 하나 더있다. 해결책 ;). 나는 그것을 제거했다. – Parado

+0

글쎄, 당신은 그것을 포함시킬 수는 있지만 큰 경고 기호가 있어야한다고 생각합니다 :) 특히 장기적으로 볼 때 문제는 해결할 수없는 것보다 많습니다! –

2

당신은 아마 당신이 commit 업데이 트를 잊지

UPDATE someTable t 
SET animals  = 'hamsters' 
WHERE t.someIdentifier = 'XXXX'; 

commit; 
SELECT * 
FROM someTable t 
WHERE t.someIdentifer = 'XXXX';