2016-11-01 1 views
1

내가 예약 된 프로세스가 지속적으로 현재 타임 스탬프 빈 타임 스탬프 열을 업데이트해야하지만 흥미롭게도 나는 그런 불일치를 참조 하나 또는 여러 개의 행 :이상한 행동은

update timestamp = current_timestamp where row_condition = true; 

하지만 어떻게 오라클 current_timestamp 쿼리의 다른 전화에서 다르게 행동하는 것이, 무슨 일이 있었 수? 한 출력은 정확한 타임 스탬프이지만 다른 출력물은 어디에도 없습니다 (31-DEC-69)?

+0

동작이 다른 점은 무엇입니까? 또한 지난 50 년 동안 진행 한 프로세스가 있었습니까? 나는 그것을 믿지 않는다. (또는 31-DEC-69가 잘못되었다고 말하는 이유는 무엇입니까?) – mathguy

+0

@mathguy 맞습니다. 질문이 너무 명확하지 않아서 업데이트해야합니다. 나는'current_timestamp'가 31-DEC-69를 어떻게 주 었는지 모르겠다. – Dreamer

+0

current_timestamp는 타임 존이있는 타임 스탬프이고, 나는 또한 그 열을 추측한다. 즉, 레코드를 만드는 세션의 시간대는 GMT-4 (미국 동부 해안)이며 1970 년 1 월 1 일의 시간으로 삽입됩니다. –

답변

0

마치 해당 열에 DEFAULT 값이있을 수 있습니다. 타임 스탬프 열에 값이 제공되지 않은 행이 삽입되었으므로 기본값이 채워집니다.

시도 select data_default from all_tab_columns where table_name = 'YOUR_TABLE'; YOUR_TABLE은 테이블 이름입니다 (대문자로 작성해야 함). 그러면 해당 열의 기본값이 있는지 알려줍니다. 원하는 경우 where 절에 열 이름을 추가 할 수 있습니다. 그러나 더 이상 알 수없는 정보를 더 많이 찾을 수 있습니다.

+0

이 쿼리를 실행했으며 결과가 null입니다. 해당 열의 기본값이 없습니다 .. – Dreamer

+0

테이블에 트리거가 있습니까? – mathguy

+0

트리거가 없습니다. 오, 바람둥이와 오라클이 CENTOS에 있다고 언급하는 것을 잊지 마라.하지만 응용 프로그램이 Windows에서 돌아가고 있지만 문제는 아니라고 생각합니다. – Dreamer