본문 바로가기

반응형

프로그램/ORACLE

(23)
ORA-01810: 형식 코드가 두번 나타났습니다 오랜만에 생소한 에러발견 ~ *YMD, TM은 컬럼명*TEMP는 테이블명  SELECT  TO_CHAR(TO_DATE(YMD||TM, 'YYYY-MM-DD DD24:MI') , 'YYYY-MM-DD DD24:MI') AS DT FROM TEMP  날짜와 시간 조합으로 조회된 결과 사용 중이였는데 갑자기 에러가 발생 ...  'ORA-01810: 형식 코드가 두번 나타났습니다' 이란 생소한 에러  찾아보니 형식코드가 두번 나타났다 ... 날짜 형식 DD 가 두번 사용되어서 나타난 거였다.  시간을 DD -> HH 로 변경했더니 해결 되었다.  SELECT  TO_CHAR(TO_DATE(YMD||TM, 'YYYY-MM-DD HH24:MI') , 'YYYY-MM-DD HH24:MI') AS DT FROM TE..
ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CLOB임 ** ORA-00932: 일관성 없는 데이터 유형: -이(가) 필요하지만 CLOB임 발생하는 원인  CLOB, BLOB  같은 타입은 일반적인 데이터 형의 컬럼들 처럼 사용하시면 안됨 CLOB는 오라클 VARCHAR 형의 길이적 한계를 극복하기 위해 만들어진 데이터형 해당 타입들은 group by, order by 같은 연산에 참여할 수 없습니다.  출처 :: https://okky.kr/questions/390846
오라클 컬럼 숫자 세는 쿼리문 오라클 컬럼 조건에 따라서 숫자 세는 쿼리문 ​ 방법은 크게 DECODE, CASE WHEN 절 을 사용할 수 있는데요. ​ 조건이 간단하면 DECODE 조건이 복잡하면 CASE WHEN 절을 사용하시면 됩니다. ​ 1. DECODE 사용법 흔히아는 DECODE 문법에 SUM, COUNT 을 해주면 됨 ​ SELECT SUM(DECODE(컬럼명, 조건, 1, 0) AS COL1 FROM 테이블명 ; ​ SELECT COUNT(DECODE(컬럼명, 조건, 1, 0)) AS COL1 , SUM(DECODE(컬럼명, 조건, 1, 0)) AS COL2 FROM 테이블명 ; ​ --> 다른 컬럼을 추가로 조회하려면 SUM, COUNT 함수를 사용 중이여서 group by 를 사용해야 됩니다. 아니면 상황에 맞게 ..
오라클 timestamp insert 오라클에서 시간 타입으로 보통 date로 많이 쓰는데 timestamp라는 타입을 처음 접해보았습니다. 물론 다른 컬럼이 있었어도 크게 영향가 없었거나 제가 컨트롤하는 영향이 아니였던 컬럼이여서 몰랐겠죠.. ㅠㅠ 암튼 테이블에 막상 timestamp 타입의 컬럼에 저장하려고 하니 ... 잘 몰라서 찾아보니 나온 방법은 아래와 같습니다. 참 쉽죠 .. ㅋㅋㅋㅋ insert into tablename (timestamp_value) values (CURRENT_TIMESTAMP);
데이터를 비율 컬럼의 합계를 1로 업데이트하는 쿼리 ** 데이터를 비율 컬럼의 합계를 1로 업데이트를 하는 걸 만들고 있습니다. 테이블 명은 Test , 컬럼 a,b,c,d ,날짜, 키값, 비율 , 등록일, 수정일 , 등록자, 수정자 로 구성되어 있습니다. 날짜와 키값을 기준으로 ab,c,d 컬럼의 order by 순서 대로 프로시져로 비율의 값을 0.0001 이나 0.0001 로 빼줘서 비율의 합이 1이 되도록 하려고 합니다. -- 대상이 되는 키값, 현재까지 비율의 합 , 처리해야할 갯수를 조회하고 , +인지 - 인지 확인 하고 loop 실행 FOR c0 IN ( SELECT 키값 , SUM(비율) SUM_PRC_RATIO /* 비율의 합 */ , ABS((1.0 - SUM(비율)) / 0.0001) AS GAP_LIMIT /* 처리해야할 갯수 */ ..
오라클 월별 주차 쿼리 인터넷에서 원래 있던 주차 쿼리를 제가 필요한 방식으로 수정한 쿼리입니다. 기본적으로 with 절을 써서 쿼리를 만들었습니다. with TEST as ( select week.* from( select to_char(WEEK_START, 'YYYY-MM-DD') WEEK_START ,to_char(WEEK_END, 'YYYY-MM-DD') WEEK_END ,to_char(WEEK_START, 'WW') WEEK_OF_YEAR_ISO ,to_char(WEEK_START, 'W') WEEK_OF_MONTH , case when to_char(WEEK_START, 'YYYYMM') = to_char(START_DT, 'YYYYMM') and to_char(WEEK_END, 'DD') < 7 then 1 whe..
오라클 컬럼명으로 테이블 찾는 쿼리문 오라클 컬럼명으로 테이블 찾는 쿼리문 컬럼명으로 테이블을 찾고자 할 때 유용한 쿼리문 SELECT * FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME LIKE '컬럼명';
오라클 날짜 차이 구하기 오라클 날짜 차이 구하기 1. SELECT trunc(to_date('20141019','yyyymmdd')) - trunc(to_date('20141028','yyyymmdd')) FROM DUAL; --> varchar2 타입(string) 형태의 날짜형식을 넘겨받았을 경우 2. SELECT trunc(to_date(컬럼명,'yyyymmdd')) - trunc(to_date(컬럼명,'yyyymmdd')) FROM 테이블명; --> 테이블과 컬럼을 각각의 위치에 매칭시켜서 사용

반응형