Database/Oracle2024. 8. 16. 10:42

소숫점 자리수를 표시할 때 화면에서 정렬을 위해 0으로 채워달라는 경우가 있다.

예 ) 0.123 -> 0.12300

FM (Fill Mode) 을 사용하자.

SELECT TO_NUMBER('0.123') AS VAL FROM DUAL

-> 0.123

SELECT TO_CHAR(TO_NUMBER('0.123'),'FM999,999,990.00000') AS VAL FROM dual;

-> 0.12300

많이 사용하는 라운드(ROUND:반올림)와 같이

SELECT TO_CHAR(ROUND(TO_NUMBER('0.123'),5),'FM999,999,990.99999') AS VAL FROM dual;

FM 에 대해서 공부하려면 

https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#SQLRF00210

 

Format Models

The total length of a datetime format model cannot exceed 22 characters. The default datetime formats are specified either explicitly with the NLS session parameters NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, and NLS_TIMESTAMP_TZ_FORMAT, or implicitly with the

docs.oracle.com

 

끝 

Posted by 비니미니파파
Database/Oracle2024. 7. 12. 11:40

Table 복사

* 테이블 변경 시 테이블 자체를 백업 해 놓고 싶을때 자주 사용.

CREATE TABLE [TBL_NEW_NAME] AS SELECT * FROM [TBL_NAME]

CREATE TABLE TBL_MEMBER_BACKUP AS SELECT * FROM TBL_MEMBER

 

Posted by 비니미니파파
Database/Oracle2024. 5. 22. 15:58

주로 사용하는 표현

column_name like '%'|| '검색어' || '%'

대소문자 구분 없이 검색하려면

UPPER(column_name) like '%'|| UPPER( '검색어') || '%'

regexp_like 로 한방에

regexp_like( column_name , '검색어' , 'i' )

대소문자 구별해야 할 때는
regexp_like( column_name , '검색어' )

 

Posted by 비니미니파파
Database/Oracle2024. 4. 24. 15:50

사용 /*+ parallel( ) */ 

SELECT
      /*+ parallel(TBL1,4) parallel(TBL2,4) */ 
FROM TBL_TEST1 TBL1, TBL_TEST2 TBL2
WHERE TBL1.USER_NAME = TBL2.USER_NAME

임시 정리

Posted by 비니미니파파
Database/Oracle2020. 6. 4. 09:06

12 버전 이상에서는 rownum 으로 처리 할 필요가 없다.

OFFSET 시작번호 ROWS FETCH NEXT 페이지보여줄갯수 ROWS ONLY

OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY

 


select 
    user_id
   , user_name
from tbl_user
order by user_id
OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY

 

Posted by 비니미니파파
Database/Oracle2020. 4. 10. 16:20

테이블 명 (table name) 이나 컬럼명(column name) 이 맞는지 확인!

거의 오타 때문이다! 

ㅠㅠ

끝.

Posted by 비니미니파파
Database/Oracle2016. 3. 2. 18:15

다른 계정에 시퀀스 권한을 주고자 할때는

grant select,alter on ORGUSER.S_TESTTBL to OTHUSER;

grant select,alter on 원계정.시퀀스명 to 타겟계정;

끝.

Posted by 비니미니파파
Database/Oracle2015. 3. 9. 09:59

ORA-06550: PLS-00103: 심볼 ""를 만났습니다.

프로시져 호출 시

, 빼먹었더니 발생했다.

ㅠ.ㅠ (결국 오타 수정)

call sp_test( a, b, c d e );

=> 수정

call sp_test( a, b, c, d, e );

Posted by 비니미니파파
Database/Oracle2015. 2. 11. 16:45

오늘 날짜 기준으로 1주일 날짜를 가져와야 함.

원하는 결과 ( 오름 차순 )

2015-02-05
2015-02-06
2015-02-07
2015-02-08
2015-02-09
2015-02-10
2015-02-11

SELECT
to_char(sysdate-7 + LEVEL,'YYYY-MM-DD') AS rdate
FROM dual
CONNECT BY LEVEL <= 7  

원하는 결과 ( 내림차순 )

2015-02-11
2015-02-10
2015-02-09
2015-02-08
2015-02-07
2015-02-06
2015-02-05

SELECT
to_char(SYSDATE + 1 - LEVEL,'YYYY-MM-DD') AS rdate
FROM dual
CONNECT BY LEVEL <= 7  
  

Posted by 비니미니파파
Database/Oracle2014. 4. 14. 16:01

oralce 메모리 설정을 하다 실수를 하여 ORA-00838 을 영접하게 되었다...

구글링 결과

sqlplus / as sysdba

SQL> create pfile from spfile;

SQL> exit

위의 작업으로 INITorcl.ORA 파일을 생성한다. (SPFILEORCL.ORA 파일로 부터)

파일 위치는 오라클 설치 폴더 \app\Administrator\product\11.2.0\dbhome_1\database (11g 기준)

 

INITorcl.ORA 을 열고

*.memory_max_target=222298112 *.memory_target=222298112 *.sga_max_size=268435456 *.sga_target=0 부분을 수정 한다.

 

sqlplus / as sysdba

 

SQL> create spfile from pfile;

 

SQL> startup

 

수정한 INITorcl.ORA 파일로 부터 SPFILEORCL.ORA 파일을 생성한다. 그리고, startup

 

**** 정리 ****

create pfile from spfile; // SPFILEORCL.ORA 을 INITorcl.ORA 로

create spfile from pfile; // INITorcl.ORA 을 SPFILEORCL.ORA 로

Posted by 비니미니파파
Database/Oracle2011. 5. 6. 11:56
1. 사용자가 LOCK 걸렸다는 오류 메세지를 뿌릴경우... ㅠ.ㅠ

"ORA-28000: the account is locked"

2. LOCK 걸린 사용자를 찾아낸다.

SELECT username, account_status, to_char(lock_date,'yy/mm/dd hh24:mi') lock_date
FROM dba_users;

3. LOCK 걸린 TESTUSER의 LOCK 푼다.

ALTER USER TESTUSER account unlock;

4. 비밀번호 변경을 한다. (비밀번호가 맞지 않을때...)

ALTER USER TESTUSER  IDENTIFIED BY TESTUSER;


Posted by 비니미니파파