반응형

컴퓨터활용/오라클 32

정규식 이용 SQL

소문자가 하나라도 들어있는 데이터만 추출하기 위하여 정규식을 이용한 SQL 구문을 작성하고자 인터넷을 찾아보니 아주 정리를 잘 해 놓은 블로그가 있어서 갈무리 한다.참조사이트 : http://goalker.tistory.com/71 [사용예제] 소문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[a-z]') ;대문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[A-Z]') ;대소문자 영문자가 들어있는 행 출력 - SELECT * FROM reg_test WHERE REGEXP_LIKE( text,'[a-zA-Z]') ; 소문자로 시작하고 뒤에 공백이 있는 모든..

윈도우7에서 Oracle 11g Client 삭제하기

오라클 클라이언트 프로그램 설치하다가 잘못 설치하게 되면 보통일이 아니다. uninstall 하는 방법이 졸라리 복잡하다. 한두시간 날아가기는 일아니기 때문에 훗날 다시 삽질하는 분들이 또 있을까봐 글을 남긴다. 오라클 클라이인트 프로그램을 설치할 때 설치소스가 있는 디렉토리에 한글이 있다든지 할 때 제대로 깔리지 않고 중단되는 수가 있다. 그러면 이렇게 찌꺼기가 남게 되는 것이다. uninstall이 이렇게 어렵게 되는 이유가 뭔지 이해가 안 되지만 어쩔 수 없다. 나의 작업 환경 첫번째 설치시도를 c:\app\oracle\product\11.2.0\client_1 에 했다. 그런데 실패. 그래서 다시 설치를 시도했는데 c:\app\oracle\OraHome_2 로 시도했다가 다시 실패. 찌꺼기로 남은..

오라클 비밀번호 대소문자구분 없애기

오라클11g 부터는 비밀번호가 대소문자 구분이 된다. 그 이전버젼에서 오라클은 userid 와 비밀번호에 대소문자 구분없이 사용해 왔던 개인 사용자들은 당황스러운 상황을 만날 수 있다. SQL> connect / as sysdba연결되었습니다. 먼저 sysdba로 데이터베이스에 접속한다. 그 다음 아래와 같은 문장을 입력한다. SQL> alter system set sec_case_sensitive_logon=false; 이 문장은 오라클 접속 시 패스워드에 대한 대소문자 구분 여부를 설정하는 것으로만약 대소문자를 구분하고 싶다면 당연히 true로 설정하고 그렇지 않으면 false로 설정한다. 다음 문장을 통해 현재 설정 값이 제대로 바뀌었는지 확인한다. SQL> show parameter sec_cas..

ORA-28000: the account is locked

ORA-28000: the account is locked 오류를 만났을 때 해결방법 오랫동안 사용하지 않다가 접속했더니 로그인이 안 되네요. SELECT USERNAME, ACCOUNT_STATUS, TO_CHAR(LOCK_DATE,'YYYY.MM.DD HH24:MI') LOCK_DATE FROM DBA_USERS; 했더니 LOCK 걸린 것은 아니고 패스워드가 EXPIRED 되었네요. USERNAME ACCOUNT_STATUS LOCK_DATE------------------------------ -------------------------------- ----------------MGMT_VIEW OPENSYS OPENSYSTEM OPENDBSNMP OPENSYSMAN OPENBXM EXPIRED(..

ORA-00257: archiver is stuck 오류

오라클 db 에 이미지 파일을 왕창 올리고 났더니 갑자기 sqlplus 로 login할때 ORA-00257: archiver is stuck. CONNECT INTERNAL only, until freed 에러를 만났다. PC에서나 UNIX 서버에서나 어떻게든 sqlplus 접속이 원천 차단되었기에 별도리가 없었다. 물론 JEUS DB 접속도 안 되고 있다. 인터넷을 찾아보니 대부분의 원인은 redo log file을 적재하는 장치의 용량 부족으로 발생하며, 이런 경우 connect internal만 가능하다고 나와 있다. 그래서 df -k 명령으로 디스크별 사용량을 보았더니 아래와 같이 /arch 디스크가 100% 차 있는 것이 보인다. 이 에러는 archive 디렉토리가 디스크가 full 나서 그렇다..

오라클 SUBSTR 으로 LEFT, RIGHT 처리

ORACLE 내장함수에는 LEFT(), RIGHT() 함수가 없다. substr 함수를 통해 똑같이 구현이 가능하다. @ 3번째 자리부터 쭉- SELECT substr('ABC홍길XY', 3) FROM DUAL; C홍길동XY @ 4번째 자리부터 2글자 SELECT substr('ABC홍길동XY', 4, 2) FROM DUAL; 홍길 한글은 한글자로 인식된다는 점에 주의 SELECT substr('일이삼사오육칠팔구', 5, 3) FROM DUAL; 오육칠 @ 우측부터 추출하고 싶다면 마이너스(-) 기호를 사용하면 된다. 우측 3글자 SELECT substr('12345678', -3) FROM DUAL; 678

오라클 테이블스페이스 용량 늘리기

1. tablespace 이름으로 관련 data file 찾기 SELECT file_name, tablespace_name, bytes FROM dba_data_files WHERE tablespace_name = '' 2. tablespace 크기 늘리기 (1) data file 추가(가장 많이 쓰는 방법) ALTER TABLESPACE ADD DATAFILE '' SIZE ; (2) 기존의 data file 크기 변경 ALTER DATABASE DATAFILE '' RESIZE ; 예제) 20GB 로 늘림. alter DATABASE datafile '/user01/oradata/hera/users01.dbf' resize 20000M (3) datafiledml size를 자동으로 늘어나게 하는 명..

오라클(Oracle) SID 및 DB_NAME 확인 방법

jdbc 에서 thin 드라이버로 오라클에 접속할 때는 SID를 알아야 한다. 최근에는 SID로 직접 기술하여 접근하는 것보다는 service name 이라는 것을 tnsname.ora 파일에 지정해 놓고 이것을 사용한다. 아무래도 SID가 공개되는 것이 문제가 될 수 있을 것이다. PRODDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 152.25.24.15)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) ) 서비스명과 인스턴스명과 데이타베이스명과 SID는 서로 비슷한 듯 하면서 약간 다르다. 1. 오라클 데이타베이스명을 확인하는 방법 SELECT NAME, DB_UNIQ..

오라클 테이블의 디스크 용량 예측

현재 테이블들이 얼마의 데이타를 사용하고 있는지는 테이블스페이스의 사용량을 보고 대략 짐작할 수 있다. 그러나 테이블의 각각의 레코드 사이즈에 데이타건수를 곱하여 세밀하고 조사하고 싶을 경우에는 아래와 같이 테이블의 레코드 사이즈를 구해볼 수 있다. 테이블의 디스크사용량이나 예측용량을 구하기 위하여 우선 아래의 sql를 사용할 수 있다. 물론 SYS 유저 이거나 system dictionary 테이블을 grant 받아서 조회가 가능해야 하겠다. SELECT OWNER 소유자, TABLE_NAME 테이블ID, TABLE_COMMENT 테이블명, SUM(DATA_LENGTH) 레코드사이즈 FROM ( SELECT A.OWNER OWNER, A.TABLE_NAME TABLE_NAME, B.COMMENTS AS..

Oracle Locking Survival Guide

Oracle Locking Survival Guide 1. Overview 멀티유저시스템에서는 여러사람이 동일한 정보를 동시에 변경하게 된다. 락은 오직 한 사용자만이 특정 데이타를 변경할 수 있도록 허용하는 것이다. 다른 사람은 동일데이타를 변경할 수 없다. The basic idea of locking is that when a user modifies data through a transaction, that data is locked by that transaction until the transaction is committed or rolled back. The lock is held until the transaction is complete - this known as data concur..

반응형