본문 바로가기

Programing/Oracle

[Oracle] 달력 쿼리 오라클 달력 쿼리 SELECT TO_CHAR(sdt+ LEVEL-1 , 'YYYYMMDD') DATE_NBR, TO_CHAR(sdt+ LEVEL-1 , 'YYYY') YEAR, TO_CHAR(sdt+ LEVEL-1 , 'MM') MONTH, TO_CHAR(sdt+ LEVEL-1 , 'DD') DAY, TO_CHAR(sdt+ LEVEL-1 , 'W') WEEK, CASE WHEN to_char(ADD_MONTHS(sdt, LEVEL-1) , 'MM') IN ('01','02','03') THEN '1' WHEN to_char(ADD_MONTHS(sdt, LEVEL-1) , 'MM') IN ('04','05','06') THEN '2' WHEN to_char(ADD_MONTHS(sdt, LEVEL-1) , .. 더보기
[oracle] java Bean 자동 생성 쿼리 JAVA BEAN 자동 생성 쿼리 수정사항이 보이시면 답변주세요~ 수정하게요 ㅋ select ' private ' ||CASE WHEN DATA_TYPE LIKE '%CHAR%' THEN 'String ' || lower(SUBSTR(COLUMN_NAME, 1, 1))||SUBSTR(replace(INITCAP(lower(COLUMN_NAME)), '_', ''), 2) || ' = ""; ' WHEN DATA_TYPE LIKE '%NUM%' THEN 'int ' || lower(SUBSTR(COLUMN_NAME, 1, 1))||SUBSTR(replace(INITCAP(lower(COLUMN_NAME)), '_', ''), 2) || ' = 0 ; ' ELSE 'String ' || lower(SUBST.. 더보기
[oracle] merge ibatis 자동 생성 insert, update 에 이이서 merge 자동 생성입니다. 수정 보안할점이 보이시면 답변 달아주세요. SELECT MAX(쿼리) FROM (SELECT 'MERGE INTO ' || TABLE_NAME || ' USING DUAL ON (' || TRIM(wm_concat(UP_COL) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) || ') WHEN MATCHED THEN UPDATE SET ' ||TRIM(wm_concat(UP_COL) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) || ' WHEN NOT MATCHED THEN ' 쿼리 FROM (select TABLE_NAME, COLUMN_ID, '.. 더보기
[oracle] update ibatis 자동 생성 insert 에 이어서 update 자동 생성 쿼리 입니다.수정 보안할 점이 있을경우 답변부탁드립니다. SELECT MAX(쿼리) FROM (SELECT 'UPDATE ' || TABLE_NAME || ' SET ' || TRIM(wm_concat(UP_COL) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) || ' WHERE 1=1 ' || TRIM(wm_concat(WHERE_COL) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) 쿼리 FROM (select TABLE_NAME, COLUMN_ID, ' ' ||COLUMN_NAME || '=' || ' #'||lower(SUBSTR(COLUMN_NAME, 1, 1.. 더보기
[oracle] ibatis insert 쿼리 자동생성 테이블명 입력하여 insert 쿼리 자동 생성 입니다. 후딱 만들어서 수정할 점이 있을경우 답변달아주세요~ SELECT MAX(쿼리) FROM (SELECT 'INSERT INTO ' || TABLE_NAME || ' (' || TRIM(wm_concat(COLUMN_NAMES) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) || ') VALUES (' || TRIM(wm_concat(COL_VALUES) OVER(PARTITION BY TABLE_NAME ORDER BY COLUMN_ID) ) ||')' 쿼리 FROM (select TABLE_NAME, COLUMN_ID, ' ' ||COLUMN_NAME COLUMN_NAMES, ' #'||lower(SUBS.. 더보기
[Oracle] ora-12541 : TNS 리스너가 없습니다. oracle이 설치된 경로에 NETWORK\ADMIN\ 폴더에 보면 oracle에서 network와 관련한 여러 설정파일들이 있다. 그 중 'tnsnames.ora'라는 파일이 있는데... 이 파일은 간단히 설명하자면 클라이언트가 oracle 서버에 접속하기 위해 필요한 일종의 설정파일이라고 보면 된다. 근데 문제는 'ora-12541 : TNS 리스너가 없습니다'라는 에러가 나올 경우인데... 별도로 'tnsnames.ora' 파일을 셋팅하지 않은 경우라면 oracle 리스너가 동작하지 않고 있을 가능성이 높다. 'tnsnames.ora'파일을 셋팅을 한 일이 있다면 'tnsnames.ora'파일 설정이 올바르게 되어 있는지도 고려해 봐야 할 것이다 oracle 계정으로 접속후 \\~$#@@> lsnr.. 더보기
프로시져 truncate PLS-00103 에러 발생시 프로시저에서 다음과 같이 일반적인 truncate 구문을 사용했는데,, PLS-00103 컴파일 오류가 발생하는 경우 truncate 절 앞에 execute immediate 구문을 붙여서 사용하면 문제 없이 컴파일 성공!! create or replace procedure proc_test is begin truncate table test_table; end; PLS-00103: Encountered the symbol "TABLE" when expecting one of the following: := . ( @ % ; PLS-00103: 심볼 "TABLE"를 만났습니다 다음 중 하나가 기대될 때: := . ( @ % ; 심볼이 ":= 계속하기 위해 "TABLE" 전에 삽입되었음 # 조치 방법 ex.. 더보기
[ORACLE] LONG RAW 타입을 JAVA JSP에 출력. 이미지를 저장한것도 아니닌데 그냥 TEXT 데이터 내용을 LONG RAW 타입으로 설정 한 테이블.. 이걸 10년 전 EJB 로 개발 된걸 IBATIS + SPRING + STRUS2 구조의 프레임 워크로 이동하는 작업을 하는데.. LONG RAW 타입의 글을 출력 해야 하는 상황이 왔다. BEAN 타입을 String 타입으로 하고 SELECT LONGRAW FORM DUAL 이 걸 출력하면 #@$@#$#@sdf@#$@# 이런 알수 없는 코드가 나와서 확인 해본결과 ~ HEX String 으로 출력되는걸 확인 hex String 으로 출력된걸 String 으로 바꿔서 출력 해주면 된다. ex) String hexString = 'XDFWEFSFEWRFSFS' 더보기
[oracle]ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다. ORA-30926: 원본 테이블의 고정 행 집합을 가져올 수 없습니다. ORACLE에서 MERGE INTO 사용 시, 발생 할 수 있는 오류다. MERGE INTO 대상 테이블에 INSERT를 할때 Duplicate가 발생 하거나 UPDATE를 할때 MULTIROW UPDATE가 되는 경우 해당 오류가 발생하게 된다. ※ USING 테이블을 ON 조건에 해당 하는 컬럼들을 조회 해 보면 중복되는 데이터가 있을거다.. 그 데이터들이 중복되지 않게 걸러주면 된다. 더보기
[oracle] ORA-22905: 내포되지 않은 테이블 항목으로 부터 행을 가지고 올 수 없습니다. ORA-22905: 내포되지 않은 테이블 항목으로 부터 행을 가지고 올 수 없습니다. 에러 발생 상황 : 프로시져 내부에서.. INSERT INTO CMWORDMEMORYQU (MEMORYQUSEQ, WORDMEMORYSEQ, WORDMEMORYDATE , ID, WORDSEQ ) SELECT SEQ+ROWNUM, P_WORDMEMORYSEQ, P_TODATE, V_ID, WORDSEQ FROM ( SELECT DISTINCT (SELECT NVL(MAX(MEMORYQUSEQ),0) FROM CMWORDMEMORYQU) SEQ, WORDSEQ FROM CMWORDOPTION WHERE OPTIONCODE IN ( SELECT * FROM TABLE( SELECT CAST(FC_SPLIT(V_QUTYPE,.. 더보기