본문 바로가기

IT관련

오라클 에러 정보 (ORA-06550, PLS-00363) - PL/SQL 에러 "식은 피할당자로 사용될 수 없습니다" ORA-06550 에러는 PL/SQL 스크립트에서 에러가 난 줄(Line)과 열(Column) 위치정보를 알려주는 부가적인 에러입니다. ORA-06550 에러가 나는 경우, 반드시 진짜 에러원인을 나타내는 에러가 함께 표시됩니다. PLS-00363 에러는 Oracle 에서 Procedure 나 Function 호출할때 인자(Parameter)를 잘못 준 경우에 발생합니다. 위에서는 AAA() 프로시져를 호출하였는데, 이때 100 이라는 값을 인자로 넘겨줬습니다. 하지만, AAA 프로시져는 아래와 같은 소스로 되어 있고, 인자가 in 속성이 아니고, out 속성으로 되어있습니다. Oracle PL/SQL 에서 Procedure 나 Function 에 넘겨주는 인자(파라메타)는 in/out 속성이 있어서 i.. 더보기
오라클 에러메시지 영어로 한글로 표시방식 변경하는 방법 (NLS_LANG) Oracle SQL*Plus 등에서 SQL문을 실행할 때 나오는 에러 메세지가 어떤 시스템에서는 한글로 나올때가 있고, 어떤 시스템에서는 영어로 메시지가 나오는 경우가 있습니다. 에러 메시지 내용을 파악하기에는 한글로 메시지를 보는 것이 우리에게 편하긴 하지만, 가끔 해당 에러메시지로 구글링해서 관련 정보를 찾아보고자 할때는 영문메시지가 훨씬 유리합니다. 구글에서 한글로 검색했을때보다 영어로 검색했을때 훨씬 많은 정보가 나오기 때문입니다. 그럼, 어떤 경우에 오라클 에러메시지가 영어로 나오고, 어떤 경우에 한글로 나올까요? 이건 오라클 환경변수 NLS_LANG 와 관계있습니다. DB서버에 할당된 NLS_LANG 정보는 위와같이 "env | grep NLS" 커맨드로 확인할 수 있습니다. NLS_LANG .. 더보기
오라클 에러 정보 (ORA-06550, PLS-00382) - PL/SQL 에러 "식이 잘못된 유형입니다" ORA-06550 에러는 PL/SQL 스크립트에서 에러가 난 줄(Line)과 열(Column) 위치정보를 알려주는 부가적인 에러입니다. ORA-06550 에러가 나는 경우, 반드시 진짜 에러원인을 나타내는 에러가 함께 표시됩니다. PLS-00382 에러는 서로 다른 Type 의 변수끼리 데이터를 복사하려고 할때 발생합니다. 위에서 l_city 변수에 l_town 변수의 값을 복사하려고 시도하다가 에러가 발생하였습니다. l_city 변수는 city_type 이라는 변수 타입을 가지고 있고, l_town 변수는 town_type 이라는 변수 타입을 가지고 있습니다. 얼핏 보기에는 city_type 과 town_type 이 똑같이 name, popul 이라는 변수들로 구성된 Record 타입들이라 서로 호환될.. 더보기
VirtualBox 에서 에러 - Could not find an open hard disk with UUID (VBOX_E_OBJECT_NOT_FOUND) (0x80BB0001) 오라클 버츄얼박스(VirtualBox)를 사용하다가 C:/ 드라이브의 공간이 부족해서 D:/ 드라이브로 옮기고자 하는 경우, 또는 다른 사람에게 VirtualBox 이미지를 전달하고자 하는 경우가 있습니다. 정상적인(권고되는) 방법은 해당 게스트이미지(가상이미지)를 *.ova 파일로 "내보내기" 해서 "다시 가져오기" 하면 됩니다. 하지만, 이게 귀찮은 경우에 간단히 하는 방법도 있습니다. 그냥 해당 이미지를 VirtualBox 에서 "지우기" 한 다음에 해당 이미지 폴더를 탐색기에서 통째로 D:/ 드라이브로 옮긴 다음에 해당 디렉토리에서 *.vbox 파일을 더블클릭하면 그냥 VirtualBox 에서 읽어집니다. 이렇게 해서 그냥 잘 되는 경우도 있고, 보통은 아래와 같은 에러를 만나게 됩니다. 즉, 이.. 더보기
인터넷에서 파일다운로드시 한글 깨짐 현상 - 브라우저에서 Download 할때 인터넷에서 텍스트파일을 다운로드 받을때, 파일명 또는 파일내용에 한글문자가 들어있는 경우 깨지는 경우가 있습니다. 아래의 경우처럼 브라우저에서 볼때는 제대로 한글명이 보이는데, 다운로드 하려고 하면, 한글명이 다 깨집니다. 이 깨진 상태로 다운로드가 가능하지만, 이 파일을 받아서 텍스트 에디터로 보려고 하면 열리지 않거나 파일안의 한글문자들이 깨져보입니다. 물론 텍스트 파일이 아니라 ppt 파워포인트나 xls 엑셀 파일의 경우에는, 파일자체가 binary 이기 때문에 파일명만 깨질뿐 내용은 깨지지 않고 다운로드 받아서 오픈 가능합니다. 이런 현상의 원인은 파일자체가 잘못된 것은 아니고, 브라우저의 디폴트 언어(Language)가 한글로 세팅되어 있지 않기 때문입니다. 아래는 구글 크롬(Chrome) 브라.. 더보기
v$datafile 에서 unrecoverable_time 컬럼 - Nologging 작업으로인한 복구 불가 문제 v$datafile 딕셔너리 뷰를 조회하다보면, 아래와 같이 unrecoverable_time, unrecoverable_change# 라는 컬럼에 값이 나오는 경우가 있습니다. 복구를 할 수가 없다는 말인데... 쫌 살벌한 말이네요~~ 이런 현상이 생기는 이유는 nologging 작업이 수행되었기 때문입니다. nologging 작업이란 대량의 DML SQL 작업을 할때 Redo Log (Archive Log) 양을 줄이고 속도를 빠르게 하기위해서 Log를 쌓지않도록 하는 것을 말합니다. Log를 쌓지 않고 작업하기 때문에 작업 자체를 빨리 끝낼 수 있지만, 복구할때 문제가 됩니다. 복구하는 과정을 보면, 먼저 RMAN 백업이나 Hot Backup 받은 파일에서 데이터파일을 복구하고 Archive Log.. 더보기
Oracle 데이터베이스 클라이언트 - Instant Client 다운로드/설치 Oracle DBMS 서버에 접속하기 위해서는 내 PC 에 Oracle Client S/W 가 있어야 합니다. 이때 Oracle Client S/W 설치를 위해 Oracle DBMS S/W 를 통째로 다운로드 받아서 S/W만 설치후 이용해도 되긴 하지만, Oracle DBMS S/W 가 꽤 큽니다. 버전별로 약간씩 차이가 있는데, 보통 3~4GB 정도 되죠^^ DB 접속 좀 하자고, 4GB 다운로드 받아서 설치하려면 좀 거시기 합니다... 예전에 포스팅한 적이 있는 Oracle Express Edition 을 설치해서 사용하는 것도 한 방법입니다. 근데, 이것도 2GB 정도의 크기입니다. 좀더 라이트하게 Client 모듈만 받아서 사용할 수 있으면 좋을겁니다. 이런 경우의 해답이 "인스턴트 클라이언트"(.. 더보기
오라클 Archive Log Full 처리 방법 - 아카이브로그 공간부족 에러 해결 Oracle DBMS 를 운영하는 DBA 들에게 Archive Log 관리는 매우 중요합니다. 이 Archive Log 파일 한개라도 날려먹으면 백업복구가 딱 그 날려먹은 파일전까지만 복구할 수 있어서 장애시 최신상태로 복구가 안되죠~ 정말 중요합니다. Archive Log 때문에 DBA 들이 고생하는 진짜 이유는 Archive Log Full 로 DB가 Hang 걸리는 경우입니다. 거의 모든 DBA 들이 적어도 한번 이상은 다들 경험이 있습니다. 아카이브로그는 DML 작업이 많으면 많이 발생합니다. 그래서 대량 배치작업, ETL 작업 등을 하는 경우에는 반드시 이 Archive Log 디렉토리가 Full 차는지 수시로 체크해야 합니다. 이미 Full 차서 DB가 서버린 경우에는 Archive Log 를.. 더보기