반응형

1. TO_CHAR 함수 이용

SELECT  TO_CHAR( num_col , '999,999,999,999,999')
FROM  TEMP

주의)999,999 패턴을 주실때는 충분히 큰 숫자를 주셔야 합니다. 조회될 수 있는 값보다
       작으면 출력이 안될 수도 있습니다.

2. REGEXP_REPLACE 함수 이용

SELECT NO

      ,REVERSE(TO_CHAR(no)) AS REVERSE_NO

      ,REGEXP_REPLACE(REVERSE(REGEXP_REPLACE( REVERSE(TO_CHAR(no)), '([0-9]{3})','\1,')), '^,','') AS COMMA_NO

FROM

(

  SELECT 123456789 AS no

  FROM dual

) V1

;

<<결과>>

NO REVERSE_NO COMMA_NO

---   -------------    -------------

123456789 987654321 123,456,789

 

TO_CHAR 함수를 이용하는 방법은 쉽지만 자릿수를 잘 고려하여 패턴을 넣어줘야 불편함이 있고,

REGEXP_REPLACE 함수는 자릿수를 고려하지 않아도 되지만 사용방법이 어렵다는 특징이 있습니다.

상황에 맞게 골라서 사용하시면 되겠습니다.

 

--- FROM dev4u ---



출처: https://dev4u.tistory.com/100 [데브포유]

반응형

'Oracle' 카테고리의 다른 글

Oracle %ROWTYPE  (0) 2019.07.03
오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
반응형

%ROWTYPE

  테이블이나 뷰 내부의 컬럼 데이터형, 크기, 속석등을 그대로 사용 할 수 있다.

  %ROWTYPE 앞에 오는 것은 데이터베이스 테이블 이름이다.

  지정된 테이블의 구조와 동일한 구조를 갖는 변수를 선언 할 수 있다.

  데이터베이스 컬럼들의 수나 DATATYPE을 알지 못할 때 편리 하다.

  테이블의 데이터 컬럼의 DATATYPE이 변경 될 경우 프로그램을 재수정할 필요가 없다.

 

 

 

 

%ROWTYPE 예제

SQL>CREATE OR REPLACE PROCEDURE RowType_Test

( p_empno IN emp.empno%TYPE )

 

IS

 

-- %ROWTYPE 변수 선언,

-- emp테이블의 속성을 그대로 사용할 수 있다.

v_emp emp%ROWTYPE ;

 

BEGIN

 

DBMS_OUTPUT.ENABLE;

 

-- %ROWTYPE 변수 사용

 

SELECT empno, ename, hiredate

INTO v_emp.empno, v_emp.ename, v_emp.hiredate

FROM emp

WHERE empno = p_empno;

 

DBMS_OUTPUT.PUT_LINE( '사원번호 : ' || v_emp.empno );

DBMS_OUTPUT.PUT_LINE( '사원이름 : ' || v_emp.ename );

DBMS_OUTPUT.PUT_LINE( '입 사 일 : ' || v_emp.hiredate );

END;

/

 

-- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용

SQL> SET SERVEROUTPUT ON ;

 

-- 실행 결과

SQL> EXECUTE RowType_Test(7900);

 

사원번호 : 7900

사원이름 : JAMES

입 사 일 : 81/12/03

 

 

PL/SQL 처리가 정상적으로 완료되었습니다.

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/1046

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

 

 

반응형

'Oracle' 카테고리의 다른 글

oracle 천단위(3자리) 콤마  (1) 2019.07.26
오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
반응형

1. 현재 주간current week의 첫번째 날TRUNC(sysdate,'IW')

 

2. 이전 주간prior week의 첫번째 날TRUNC(sysdate-7,'IW')

 

3. 다음 주간next week의 첫번째 날NEXT_DAY(sysdate,'MONDAY')

 

4. 현재 달current month의 첫번째 날TRUNC(sysdate,'MM')

 

5. 이전 달prior month의 첫번째 날ADD_MONTHS( TRUNC(sysdate,'MM'), -1 )

 

6. 다음 달next month의 첫번째 날ADD_MONTHS( TRUNC(sysdate,'MM'), 1 )

 

7. 현재 달current month의 마지막 날LAST_DAY(sysdate)

 

 

출처 : https://jdm.kr/blog/71

반응형

'Oracle' 카테고리의 다른 글

oracle 천단위(3자리) 콤마  (1) 2019.07.26
Oracle %ROWTYPE  (0) 2019.07.03
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
반응형

SELECT  TRUNC(TO_DATE('20190402', 'YYYYMMDD'), 'iw') FROM dual;

 

반응형

'Oracle' 카테고리의 다른 글

Oracle %ROWTYPE  (0) 2019.07.03
오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
날짜 기간 조회  (0) 2018.12.27
반응형




SELECT * FROM sys.props$ where name='NLS_CHARACTERSET';


SELECT * FROM sys.props$ where name='NLS_NCHAR_CHARACTERSET';


SELECT * FROM sys.props$ where name='NLS_LANGUAGE';


SELECT * FROM sys.props$ where name like '%CHARACTERSET%';







update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';


update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';


update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';




데이타베이스의  CHARACTER SET은 데이타 딕셔너리 테이블인 sys.props$에

 들어 있다



SQL>desc sys.props$



SQL>column c1 format a30 

SQL>select name c1, value$ c1 from sys.props$;







출처  : https://keichee.tistory.com/65


출처 : http://jehna.tistory.com/36



반응형

'Oracle' 카테고리의 다른 글

오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle 테이블 컬럼 추가  (0) 2018.12.27
날짜 기간 조회  (0) 2018.12.27
오라클 랜덤으로 select 하기  (0) 2018.12.18
반응형

1. 테이블 컬럼 추가하기(ALTER TABLE ADD)
[문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈));
( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때
-> ALTER TABLE USER ADD(USER_NAME VARCAHR2(13)); 
 
2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY)
[문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈));
( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUNBER(3) 타입으로 수정할 때
-> ALTER TABLE USER MODIFY(USER_AGE NUMBER(3));
 
3. 테이블 컬럼 삭제하기(ALTER TABLE DROP)
[문법] ALTER TABLE 테이블명 DROP COLUMN 컬럼명
( EX ) USER라는 테이블에 USER_NAME 라는 컬럼을 삭제할 때
-> ALTER TABLE USER DROP COLUMN USER_NAME;
 
4. 테이블 컬럼 이름 변경하기(ALTER TABLE RENAME)
[문법] ALTER TABLE 테이블명 RENAME COLUMN 원래컬럼명 TO 바꿀컬럼명;
( EX ) USER라는 테이블에 USER_NAME 이라는 컬럼을 USER_FIRST_NAME으로 변경할 때
-> ALTER TABLE USER RENAME COLUMN USER_NAME TO USER_FIRST_NAME;


출처: http://jwklife.tistory.com/5 [인 생]

반응형

'Oracle' 카테고리의 다른 글

오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
날짜 기간 조회  (0) 2018.12.27
오라클 랜덤으로 select 하기  (0) 2018.12.18
반응형

WHERE  START_DATE <= 종료 날짜

AND     END_DATE >= 시작 날짜

반응형

'Oracle' 카테고리의 다른 글

오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
오라클 랜덤으로 select 하기  (0) 2018.12.18
반응형

Select * from( 
    select * from table
    order by DBMS_RANDOM.RANDOM 
) where rownum < 10;



반응형

'Oracle' 카테고리의 다른 글

오라클 월 처음&마지막 날짜 구하기  (0) 2019.04.25
해당 날짜의 일요일 구하기  (0) 2019.04.02
Oracle Characterset  (1) 2019.01.03
Oracle 테이블 컬럼 추가  (0) 2018.12.27
날짜 기간 조회  (0) 2018.12.27

+ Recent posts