목록DB (44)
nickjoIT
--NVL(expr,expr1)--expr의 값이 NULL일 경우 expr1의 값을 반환SELECT NVL(NULL,5) FROM DUAL; --NVL2(expr,expr1,expr2)--expr의 값이 NULL이 아닐 경우에는 expr1의 값을 반환하고--NULL일 경우에는 expr2의 값을 반환SELECT NVL2(NULL, 'TRUE', 'FALSE') FROM DUAL; --NULLIF(expr1,expr2)--expr1값과 expr2값이 동일하면 NULL을 반환하고, 그렇지 않으면 expr1을 반환SELECT NULLIF('2','2') FROM DUAL; --COALESCE(expr1,expr2,expr3)--expr1이 NULL이 아니면 expr1 값을, 그렇지 않으면 COALESCE(exp..
DECLARE x NUMBER := 5; y NUMBER := NULL;BEGIN --y가 NULL이므로 비교 연산이 불가하므로 FALSE IF x != y THEN DBMS_OUTPUT.PUT_LINE('x != y'); --not executed --y가 NULL이므로 비교 연산이 불가하므로 FALSE ELSIF x = y THEN DBMS_OUTPUT.PUT_LINE('x=y'); --not executed --비교 연산이 불가하므로 ELSE 부분만 수행이 됨 ELSE DBMS_OUTPUT.PUT_LINE('Can''t tell if x and y are equal or not.'); END IF; --NULL 여부는 IS NULL 함수를 이용하여 비교해야함 IF y IS NULL THEN DBMS..
%TYPE- 테이블 칼럼 또는 사용자 정의 칼럼 타입과 동일한 타입을 설정할 때 사용 %ROWTYPE- 테이블의 행 단위 칼럼 또는 커서에서 추출된 행 단위 칼럼과 동일한 레코드 타입으로 설정하는데 사용 ex) DECLARE --DEPT 테이블의 DNAME과 같은 타입의 변수 선언 l_dname dept.dname%TYPE; --DEPT 테이블의 행과 같은 레코드 변수 선언 dept_rec1 dept%ROWTYPE; --DEPT테이블에서 일부 칼럼들만 추출하는 커서 선언 CURSOR c1 IS SELECT deptno, dname, loc FROM dept; --C1 커서의 칼럼과 같은 레코드 변수 선언 dept_rec2 c1%ROWTYPE;BEGIN --DEPT테이블의 한 행의 칼럼을 %ROWTYPE의..
DECLARE --새로운 레코드 타입 생성 TYPE emp_record IS RECORD(empno NUMBER, ename VARCHAR2(20)); emp_rec emp_record;BEGIN --레코드 타입 변수에 모든 칼럼의 값을 한번에 입력 SELECT empno, ename INTO emp_rec FROM emp WHERE rownum=1; DBMS_OUTPUT.PUT_LINE('empno: ' || emp_rec.empno); DBMS_OUTPUT.PUT_LINE('ename: ' || emp_rec.ename);END;/
DECLARE l_bonus NUMBER(8,2); l_ename VARCHAR2(20); l_empno NUMBER(6) := 7369;BEGIN --SELECT INTO 방식으로 변수에 값 할당 SELECT ename, sal*0.10 INTO l_ename, l_bonus FROM EMP WHERE EMPNO = l_empno; DBMS_OUTPUT.PUT_LINE('ename: ' || l_ename || ', bonus: ' || l_bonus);END;/
SET SERVEROUTPUT ON; DECLARE l_output varchar2(1000);BEGIN --화면 출력을 1000000건으로 제한함 DBMS_OUTPUT.ENABLE(1000000); --화면 출력에 제한을 두지 않음 DBMS_OUTPUT.ENABLE(BUFFER_SIZE => NULL); --데이터 추출 후 다음 라인으로 이동 DBMS_OUTPUT.PUT_LINE('PUT_LINE1'); --데이터 추출 후 대기 DBMS_OUTPUT.PUT('PUT1'); DBMS_OUTPUT.PUT('PUT2'); --다음 라인으로 이동 DBMS_OUTPUT.NEW_LINE; --변수에 담긴 데이터를 출력 l_output := 'dbms_output test1'; DBMS_OUTPUT.PUT_LINE..
DECLAREl_sql varchar2(100);BEGIN FOR i IN 1..10 LOOP l_sql := 'CREATE TABLE t' || i || '(id number)'; EXECUTE IMMEDIATE l_sql; END LOOP;END;/
1. pg_hba.conf file 수정sudo -u postgres vi /etc/postgresql/9.3/main/pg_hba.conf위 파일을 열고 규칙을 수정한다. # 모든 아이피 접속 가능host all all 0.0.0.0/0 md5# 특정 아이피에서 비밀번호 없이 접속 가능host all all 192.168.0.5/32 trust # 특정 아이피에서 접속 불가능 host all all 192.168.0.5/32 reject 2. postgres.conf 수정 listen_addresses 항목을 찾아 주석을 제거하고 다음과 같이 수정한다. listen_addresses = '*' 3. 재시작sudo service postgresql restart [출처] http://blog.secret..
OPTIMIZER MODE 종류CHOOSE- 오라클의 9i의 디폴트 설정입니다. 하지만 10g 부터는 ALL_ROWS가 디폴트 설정이죠. 간단하게 설명해서 CBO나 RBO를 사용할지 오라클이 알아서 선택합니다. /*+ RULL*/ 힌트를 사용하거나 통계정보가 하나도 없다면 RBO를 그 외의 경우에는 CBO를 사용하게 됩니다.RULE- 무조건 RBO를 사용합니다.FIRST_ROWS (FIRST_ROWS_N)- CBO의 일종으로 일부 데이터를 보여주는데 최적화된 모드입니다. 테이블에 1000건이 있어도 '최근 데이터 20건만 보여주겠다.'라면 FIRST_ROWS를 사용하시면 됩니다. 주로 OLTP(Online Transaction Processing)에 적당합니다.ALL_ROWS- CBO의 일종으로 전체 데..
# 오라클은 비밀번호 변경에 180일의 기간을 준다. 그 기간이 지나면 암호 만료 오류가 뜨므로, 비밀번호를 변경해주어야한다 1. 관리자 로그인C:\>sqlplus / as sysdba 2. 비밀 번호 유효 기간 확인SQL> select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME'; 참고) 위의 명령어를 입력하면 암호 만료 기간이 180일 인것을 확인할수 있다. 3. 암호 기간 무기한 설정SQL> alter profile default limit password_life_time unlimited; SQL> commit; 4. 비밀번호 변경ALTER USER USER IDENTIFIED BY "새비밀번..