본문 바로가기

오라클 ORA-01002 오류 원인과 조치 방법 ORA-01002 오류가 발생되는 경우는 여러가지가 있을 수 있겠지만 최근에 만난 사례는 공유하면 좋겠다. 오라클에서 커서 Open 후에 rollback을 처음으로 만나게 되면 ORA-01002 오류 : fetch out of sequence 가 발생될 수 있다. 오라클의 경우 커서 오픈 후 바로 rollback 을 만나면 커서를 닫아 버리기는 경우였다. 이런 현상은 무조건 발생되는 것은 아니고 커서 오픈 전 DML 이 수행된 적이 있을 경우에 발생된다. 커서 오픈 전 수행된 DML 이 commit/rollback 으로 마무리 되지 않은 상태에서 커서가 오픈되고 rollback 을 처음 만나게 될 때 이전 DML 을 rollback 하면서 커서도 close 해 버린다. 커서 오픈 전에 DML 수행되었더라.. 더보기
리눅스 디렉토리 사용량 디렉토리별 사용량을 보려면 du 명령을 사용한다. 그런데 그냥 du 명령을 치면 하위 디렉토리까지 다 보여 주게 되므로 정신이 없다. 현재 디렉토리 기준으로 1 레벨만 보고 싶다면 --max-depth 옵션을 사용한다. du --max-depth=1 그러면 내가 접근할 수 없는 디렉토리의 경우 "허가 거부" 메시지가 뜨게 된다. 이런 거 지저분해서 보기 싫다면 du --max-depth=1 2>/dev/null "허가 거부" 등과 같은 오류 메시지는 화면으로 출력되지 않도록 한다. 디렉토리 사용량 크기별로 정렬해서 보면 편할 것이다. du --max-depth=1 2>/dev/null | sort -n 다른 이야기 지만 사용량을 byte 단위가 아닌 K, G로 보고 싶다면 -h 옵션을 사용한다. 더보기
U2L프로젝트 문자열 이슈 유닉스로 개발된 C 소스를 리눅스에서 컴파일만 하고서 돌리면 잘 돌아갈까? 대부분 프로그램들은 잘 돌아가지만 몇몇 코드들은 손을 봐줘야 하는 것들이 있다. 그중에서 함수로 아규먼트를 넘길 때 문자열 이슈가 있다. 특히 readonly 문자열 값을 아규먼트로 넘길 때 끝처리에서 다르게 동작한다. 001: void function_test_str( char *str ) { 002: char tmp_str[100]; 003: size_t len; 004: 005: len = strlen(str); 006: strncpy( tmp_str, str, sizeof(tmp_str)); 007: tmp_str[len] = 0x00; /* 확실한 막음처리 */ 008: printf("len=[%u] str=[%s] tm.. 더보기