본문 바로가기

공부이야기/Oracle

Order By 임의로 지정하기 SELECT * FROM 테이블명A ORDER BY ( CASE 컬럼명 WHEN 조건1 THEN 1 WHEN 조건2 THEN 2 WHEN 조건3 THEN 3 ELSE 4 END ) 또는 SELECT * FROM 테이블명A ORDER BY DECODE(컬럼명 , 조건1, 1, 조건2, 2, 조건3, 3, 4) 위와 같이 사용할 수 있음. ※ 숫자 1, 2, 3 은 출력될 순서를 의미함.
[오라클] EXPDP / IMPDP *. Data Pump Oracle 10g의 기능인 Data Pump는 Oracle Database data와 metadata의 이동을 위한 DBMS_DATAPUMP 패키지를 통하여 상당히 빠른 Data Pump infrastructure를 제공하고 있다. 기존 Oracle 9i까지 사용되던 exp, imp 유틸리티보다 더욱더 향상된 성능을 목적으로 만들어진 유틸리티다. Data Pump는 exp/imp보다 훨씬 많은 기능이 있으며, 대량의 데이터를 작업할 때 무척이나 빠르게 작업할 수 있다. 다음은 간단한 사용방법 및 샘플이다. *. expdp 1. 디렉토리 조회 SQL> SELECT * FROM dba_directories; 2. 디렉토리 추가 SQL> DROP DIRECTORY dpump_dir2;..
[오라클] EM접속시 '이 웹 사이트의 보안 인증서에 문제가 있습니다.' 해결 "이 웹 사이트의 보안 인증서에 문제가 있습니다." 위와 같은 오류가 발생하는 이유는 오라클 EM이 사용하는 인증서 키의 길이는 512비트를 사용하기 때문입니다. Microsoft 에서는 윈도우즈 보안 서비스 업데이트를 통해서 인증서의 키 길이를 1024비트 이상으로 한정하였는데 오라클의 인증서가 그 길이보다 작은 인증서를 사용하기 때문에 발생하는 것입니다. EM을 사용하려면 인위적으로 인증서 키 길이의 제한을 512비트 이하로 낮추어야만 합니다. 그 방법은 다음 코드를 도스창에서 실행하면 됩니다. certutil -setreg chain\minRSAPubKeyBitLength 512 만약에 EM을 더 이상 사용하지 않게 되었을 때 보안을 위해서라도 인증서의 길이 제한을 원래대로 돌리고 싶다면 다음 명령..
[오라클]DB링크 먼저 링크시킨 DB를 불러와서 사용할 유저에 DBA권한이 있어야되는것같음. SYSTEM계정에서 GRANT DBA TO 유저명A 로 DBA권한을 주자 다음으로 유저명A에 들어가서 링크시킬 DB에 대한 권한을 부여해줌. GRANT CREATE PUBLIC DATABASE LINK, DROP PUBLIC DATABASE LINK TO 유저명B /* 원격서버에대한 정보를 Tnsnames.Ora에 추가. 서비스명A = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 링크할디비주소(=원격지겠지?) )(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 서비스네임) ) ) */ 자 그럼 준비가 됬으면 링크를 ..
[SQL]계층형 최하위 레벨 찾기 CONNECT_BY_ISLEAF 라는게 있었네. ㅎㅎ 기본적으로 CONNECT BY 절을 사용해서 계층형을 뿌리고 SELECT 절에 CONNECT_BY_ISLEAF 를 추가하면 최하위일때는 '0' 아닐떄는 1로 표기가됨. ex) SELECT level, CONNECT_BY_ISLEAF LEAF FROM WM_WBS_INFO WHERE WBS_VERSION = 6 START WITH WBS_PARENT_ID IS NULL AND WBS_VERSION = 6 CONNECT BY PRIOR WBS_ID = WBS_PARENT_ID AND WBS_VERSION = 6 tip.1 1. START WITH는 처음 시작할 조건을 의미. 2. CONNECT BY는 1.의 데이터와 연결된 로우를 반복하여 찾음. 쉽게 생..
[오라클] Oracle 11g 패스워드 대소문자 인식 Oracle 9i 에선 상관없었지만... 11g를 쓸때 처음 설치하고 ' 뭐지??? 왜 로그인이 안되지??? ' 하고 헤메였는데... ㅜ,.ㅜ 패스워드 대소문자를 인식하는구나...귀찮케시리.. 명령어 프롬프트창을 키고 c:\> sqlplus / as sysdba sql> alter system set sec_case_sensitive_logon=false; 짜잔!! 이렇게 하니까 대소문자 인식이 풀림 ㅎㅎㅎ 한가지더 tip !! 오랫동안 사용안하는 유저는 6개월이 지나면 잠겨버린다!!! sql> alter profile default limit password_life_time unlimited; 패스워드 자동잠김해제 기능 ㅎ
[오라클] 11g XE 기본 세팅 방법 캐릭터셋 세팅 C>sqlplus / as sysdba; -- CharSet 변경 update sys.props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET'; update sys.props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET'; update sys.props$ set value$='AMERICAN_AMERICA.KO16MSWIN949' where name='NLS_LANGUAGE'; update sys.props$ set value$='AL16UTF16' where name='NLS_NCHAR_CHARACTERSET'; -- DATA Base CharSet 변경 SHUTDOW..