본문 바로가기

Oracle

(11)
[Oracle]ORA-01861: literal does not match format string ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 ORA-01861: literal does not match format string TO_DATE와 TO_CHAR 함수사용시 날짜형식을 지정하지 않았을 때 기본값으로 지정되는 형식이 달라서 그렇다. 운영DB와 개발DB NLS_DATE_FORMAT 설정값이 달라서 에러가 발생했던거 같은데, DB설정은 어떻게 바꾸는지는 모르겠고 쿼리 작성시에 포멧을 적어주도록 조치했다. (DBA 한테 요청..ㅎ) SQL Developer 나 DB tool을 사용하여 쿼리를 호출할땐 정상적으로 출력되서 미쳐버리게 된다.... * 오류 발생할 수 있는 예시 SELECT TO_DATE('2023-11-30', 'MM/DD/YYYY') FROM DUAL; DATE 타입의 ..
Oracle 행열 변환(DECODE 사용) 보통 집계를 낼때 행을 열로 표시하여 자료를 제공해 줘야되는 경우가 있다. 예제) 가맹점별 판매수량을 월별로 집계내기 가맹점별 판매수량을 월별합계를 구하기 위해 DECODE 함수를 사용했다. 가맹점 번호로 그룹을 묶고, DECODE함수로 판매월이 일치하면 판매건수를 SUM하는 쿼리를 만들었다.
Oracle - 테이블 코멘트 조회 ALL_ 데이터 딕셔너리 뷰에서 조회 - 자신 계정 소유 또는 권한을 부여 받은 객체 등에 관한 정보를 조회할 수 있다. SELECT A.TABLE_NAME, B.COMMENTS FROM ALL_TABLES A, ALL_TAB_COMMENTS B WHERE A.TABLE_NAME = B.TABLE_NAME AND A.OWNER = '' /* 계정으로 조회 */ AND A.TABLE_NAME = '' /* 테이블명으로 조회 */ USER_ 데이터 딕셔너리 뷰에서 조회 - 자신의 계정이 소유한 객체 등에 관한 정보를 조회할 수 있다. SELECT A.TABLE_NAME, B.COMMENTS FROM USER_TABLES A, ALL_TAB_COMMENTS B
Oracle RAC Jdbc Connection String 설정 오라클의 RAC(Real Appliction Clusters)은 오라클사의 데이터베이스 클러스터링 솔루션으로 여러대의 DB를 동일한 서비스 네임으로 접속 하여 마치 하나의 DB에 접속하여 사용하는 것처럼 구성해 주는 서비스다. Oracle RAC 환경에서의 Jdbc Connection String 설정 방법 -> 아래 connection 스트링을 사용하여 서비스하고 있다. 커넥션 스트링이 잘못됬을 경우 ORA-24962 에러가 발생한다. *현재 운영환경 jdk 1.8 ojdbc8.jar oracle 19c jdbc:oracle:thin:@( DESCRIPTION=( ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xx1)(PORT=1521)) (ADDRES..
Oracle 주말 공휴일 제외 평일 구하기(WORKING DAY) WORKING DAY를 구하기 (공휴일, 주말 제외 근무일수) SELECT COUNT(1) WORKING_DAYS --* FROM ( SELECT TO_CHAR(start_dt + level - 1,'YYYYMMDD') dates, TO_CHAR(start_dt + level - 1,'D') d FROM ( SELECT TO_DATE('20200901','YYYYMMDD') AS start_dt, --시작일자 TO_DATE('20201010','YYYYMMDD') AS end_dt --종료일자 FROM dual ) CONNECT BY level
Oracle SCOTT 계정 활성화 하기 SQL Plus는 사용자, 관리자 및 프로그래머가 일반적으로 사용하는 기본 명령 줄 인터페이스가있는 가장 기본적인 Oracle Database 유틸리티입니다. ORACLE 실습용 계정인 SCOTT 계정 활성화에 대한 포스팅을 하겠습니다. SQLPLUS 실행 > cmd - sqlplus SYS 권한 접속 > /as sysdba SCOTT 계정 접속 SQL> conn SCOTT/TIGER Warning: You are no longer connected to ORACLE. 기존 sys 계정으로 연결되어 있었으나 유효하지 않은 연결 시도로 인해 기존 연결까지 해제되는 상황. 다시 SYS 권한으로 접속 SQL> conn sys SCOTT 계정 잠금해제 및 TIGER 비밀번호 설정 SQL> alter user s..
CTAS 쿼리 테이블 복사 CTAS 란 : CREATE TABLE AS SELECT(CTAS) SELECT 문의 결과로부터 새 테이블을 생성한다. 1. 데이터까지 복사할때 CREATE TABLE 테이블명 AS SELECT * FROM 복사할 테이블명; (조건 필요시 : WHERE ~~~) 2. 테이터 복사 X 테이블 구조만 복사할때 CREATE TABLE 테이블명 AS SELECT * FROM 복사할 테이블명 WHERE 1=2; 생성 결과 -> DEPT_20201010 테이블이 생성되었다. 제약조건을 확인해보자. 원본테이블과 복사한 테이블 제약조건 비교 DEPT 테이블은 PK, NOT NULL 제약조건이 걸려있다. 복사한 DEPT_20201010 테이블은 NOT NULL 제약조건만 복사되었다. 제약조건은 NOT NULL 만 복사된..
[SQL] ORACLE, MYSQL, MSSQL 숫자 세자리 콤마 표시 숫자 세자리마다 콤마 표시 방법 oracle SELECT TO_CHAR(컬럼명, 'FM999,999,999,999') FROM 테이블 mysql SELECT FORMAT(컬럼명, 0) FROM 테이블 MSSQL SELECT replace(convert(varchar,convert(money,컬럼명),1),'.00','') FROM 테이블
[오라클] SELECT 해서 UPDATE하기 / SELECT 해서 INSERT 하기 오라클에서 SELECT 해서 UPDATE 하기 UPDATE 테이블명 A SET (COLUMN1, COLUMN2, COLUMN3) = (SELECT COLUMN1, COLUMN2, COLUMN3 FROM 테이블명 WHERE COLUMN1 = '0001')WHERE A.COLUMN1 = '0001' SELECT 해서 INSERT 하기 INSERT INTO 테이블명(COLUMN1, COLUMN2, COLUMN3)SELECT COLUMN1, COLUMN2, COLUMN3FROM 테이블명WHERE A.COLUMN1 = '0001'
엑셀에서 insert 쿼리 만들기 엑셀파일로 데이터를 받아 데이터베이스에 추가해야 하는 경우가 종종 있다. 그럴때 INSERT 쿼리를 쉽게 만드는 법이다. 1. 첫번째 방법 ="INSERT INTO INSERT_TABLE(COLUMN1, COLUMN2, COLUMN3) VALUES('"&A2&"','"&B2&"','"&C2&"');" ="INSERT INTO INSERT_TABLE(COLUMN1, COLUMN2, COLUMN3) VALUES('"&A2&"','"&B2&"','"&C2&"');" 255자리가 넘어가게 되면 밑에 두번째 방법을 이용하면된다. -> 에러메세지 : 수식의 텍스트 값은 255자로 제한되어 있습니다. 2. 두번째 방법 CONCATENATE 이용 concatenate 함수를 붙여주면 된다! =CONCATENATE("I..