본문 바로가기
728x90
반응형

오라클14

모든 테이블에서 데이터 찾기 SELECT 'SELECT ''' || TABLE_NAME || ''', ''' || COLUMN_NAME || ''', COUNT(*) FROM ' || TABLE_NAME || ' WHERE ' || COLUMN_NAME || ' LIKE ''%찾고싶은값%'' UNION ' FROM USER_TAB_COLUMNS WHERE DATA_TYPE = 'VARCHAR2' 2024. 8. 23.
[Oracle] 윤년/평년 구하기 CREATE FUNCTION SF_GET_LEAPYEAR ( iYEAR VARCHAR2, -- 년도 ) RETURN VARCHAR2 IS RET_NAME BOOLEAN; BEGIN RET_NAME := ''; /* - 윤년 구하는 방법 - 특정연도를 4로 나누었을때 나누어 떨어지면 그 해는 일단, 윤년. 그러나 100으로 나누었을때 나누어 떨어진다면 4로 나누어 떨어진다고 해도 그 해는 평년. 그리고 마지막으로 400으로 나누어 떨어진다면 100으로 나누어 떨어진다고 해도 윤년. */ CASE WHEN (MOD(iYEAR, 4) = 0 AND MOD(iYEAR, 100) 0) OR (MOD(iYEAR, 400) = 0) THEN RET_NAME := TRUE; --'LEAP YEAR' ELSE RET_N.. 2024. 2. 23.
[Oracle] 테이블 중복값 중에 최신값 가져오는 방법 데이터를 추출하기 위해 여러 값중 최대값 OR 최소값을 구할 경우가 있다. 여러가지 방법으로 구할수도 있지만 아래와 같은 방법으로도 데이터를 추출 할 수 있으니 참고 하면 좋을것 같다. --Sample data /* [ 일자 ][ 이름 ][ 점수 ] 20240101 TEST 10 20240102 TEST 11 20240103 TEST 12 20240104 TEST 13 20240101 TTTT 5 20240102 TTTT 8 20240103 TTTT 1 20240109 TTTT 0 */ SELECT 이름 ,MAX(일자) AS 일자 ,SUBSTR(MAX(일자||'*'||점수),INSTR(MAX(일자||'*'||점수),'*')+1) AS 점수 FROM SAMPLE_TABLE GROUP BY 이름 --결과 [.. 2024. 2. 23.
한글 - 알파벳 - 숫자 순으로 정렬 ** ASCII 코드의 값 범위 45217 ~ 51454 -- 한글 48 ~ 57 -- 숫자 65 ~ 90 -- 대문자 97 ~ 122 -- 소문자 ASCII함수로 정렬하기 WITH TEST AS( SELECT '777' AS NAME FROM DUAL UNION ALL SELECT '567' AS NAME FROM DUAL UNION ALL SELECT '0' AS NAME FROM DUAL UNION ALL SELECT '가나다라마바사' AS NAME FROM DUAL UNION ALL SELECT 'A' AS NAME FROM DUAL UNION ALL SELECT 'B' AS NAME FROM DUAL UNION ALL SELECT 'a' AS NAME FROM DUAL UNION ALL SELE.. 2023. 8. 1.
오라클 문자열 자르기 컬럼 구분값 자르기 컬럼의 구분값으로 열로 변환(?) 하기 위해서 아래와 같이 정규식을 통해 문자열을 자를수 있습니다. 문자열 자르기 SELECT REGEXP_SUBSTR(FULL_PATH,'[^,]+', 1, 1) AS STR1 ,REGEXP_SUBSTR(FULL_PATH,'[^,]+', 1, 2) AS STR2 ,REGEXP_SUBSTR(FULL_PATH,'[^,]+', 1, 3) AS STR3 ,REGEXP_SUBSTR(FULL_PATH,'[^,]+', 1, 4) AS STR4 FROM( SELECT '메뉴,메뉴1,메뉴2,메뉴3' AS FULL_PATH ) 출력 STR1 STR2 STR3 STR4 메뉴 메뉴1 메뉴2 메뉴3 * 참고 https://gent.tistory.com/459 [Oracle] 오라클 문자열 구분.. 2023. 4. 24.
오라클 Instance Name 조회 하기 SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE; 2023. 3. 17.
오라클 GREATEST, LEAST 함수 - 최대값 최소값 https://gent.tistory.com/332 [Oracle] 오라클 GREATEST, LEAST 함수 사용법 및 주의사항 오라클에서 GREATEST 함수는 최대값, LEAST 함수는 최소값을 반환하는 함수이다. MAX, MIN 함수와 차이점은 서로다른 컬럼의 값을 비교한다는 것이다. 같은 행(Row)에서 서로다른 컬럼의 값을 비교하여 gent.tistory.com 2022. 11. 25.
시퀀스 조회 및 삭제 시퀀스 조회하기 SELECT SEQUENCE_OWNER,SEQUENCE_NAME,dbms_metadata.get_ddl('SEQUENCE',A.SEQUENCE_NAME,A.SEQUENCE_OWNER) FROM ALL_SEQUENCES A WHERE SEQUENCE_OWNER IN ('SCCOT'); 시퀀스 삭제하기 DROP SEQUENCE [시퀀스명] 2022. 10. 14.
스키마별 인덱스 조회 스키마별 인덱스 조회 및 스크립트 추출 SELECT a.index_name, -- 인덱스 명 조회 DBMS_MEtadata.get_ddl('INDEX', A.index_name ,A.TABLE_OWNER) -- DLL활용하여 INDEX 스크립트조회 FROM all_ind_columns a WHERE a.TABLE_OWNER = 'SCOTT' GROUP BY a.index_name,A.TABLE_OWNER; 1. 인덱스 조회 샘플 https://gent.tistory.com/203 [오라클] 인덱스 조회 방법 (Index) 오라클(Oracle) 인덱스 조회 쿼리 오라클 쿼리를 작성하기 전에 필수적으로 인덱스(Index)를 확인해야 한다. 인덱스를 무시하고 쿼리를 작성하면 심각한 성능 이슈가 발생 할 수 있.. 2022. 10. 6.
[ORACLE]사용자 및 권한 조회 하기 --1. 사용자에게 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '사용자명'; --2. 사용자에게 부여된 롤 확인(시스템 권한이 롤에 포함됨) SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '사용자명'; --3. 사용자에게 부여된 롤에 부여된 시스템 권한 확인 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '롤명'; --4. 타 사용자에게 부여한 객체(테이블등)권한 확인 SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '테이블소유자명'; SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = '권한부여자명'; 권한 부여 --1. 테.. 2022. 7. 20.
[오라클] 영문 날짜 표기 오라클 영문 날짜 조회 SELECT TO_DATE('20210101') , TO_CHAR(TO_DATE('20210101') ,'MonthDD YYYY','NLS_DATE_LANGUAGE=ENGLISH') FORMAT1 , TO_CHAR(TO_DATE('20210101') ,'MonthDD, YYYY','NLS_DATE_LANGUAGE=ENGLISH') FORMAT1_1 , TO_CHAR(TO_DATE('20210101'),'Month','NLS_DATE_LANGUAGE=ENGLISH') FORMAT2 , TO_CHAR(TO_DATE('20210101'),'MonthfmDD, YYYY','NLS_DATE_LANGUAGE=ENGLISH') FORMAT3 , TO_CHAR(TO_DATE('20210101').. 2021. 12. 8.
[ORACLE] DECODE 와 CASE활용 방법 DECODE DECODE는 IF문과 같습니다. SELECT DEPT, DECODE( DEPT, 'A팀' ,SUM(SAL), 'B팀' ,MAX(SAL), MIN(SAL)) FROM EMP GROUP BY DEPT ORDER BY DEPT 위와같은 방법으로 조회를 하게 되면, DEPT 'A팀'은 합계값, B팀은 MAX값 , 그외는 MIN값이 출력됩니다. CASE CASE문은 IF ~ TEHN ~ ELSE ~ END 의 프로그래밍 언언처럼 조건문을 사용할 수 있습니다. SELECT CASE WHEN DEPT= 'A팀' THEN SUM(SAL) WHEN DEPT = 'B팀' THEN MAX(SAL) ELSE MIN(SAL) END FROM EMP 2021. 11. 5.
오라클 오브젝트(object) 내용 조회하기 Function/Procedure 내용을 어떻게 하면 알 수 있을까? USER_OBJECTS는 DB에 존재하는 Object 들의 정보를 관리 하고 USER_SOURCE는 각 Object 들의 내용을 확인할 수 있습니다. 즉, Oracle 에서 Funtion/Procedure 의 내용을 확인하려면 SELECT A.OBJECT_ID, A.OBJECT_NAME, A.OBJECT_TYPE, B.TEXT FROM USER_OBJECTS A, USER_SOURCE B WHERE A.OBJECT_TYPE IN( 'FUNCTION','PROCEDURE') AND A.OBJECT_NAME = B.NAME AND B.TEXT LIKE '%찾을 내용%'; 을 수행하면 원하는 내용을 찾을 수 있습니다. 2021. 11. 4.
PL/SQL Developer 데이터 엑셀 업로드 PL/SQL Developer 프로그램에서 엑셀 업로드를 하기위해서는 아래 메뉴로 이동해야 합니다. 메뉴 : Tools > Text Importer 우선 데이터를 업로드 하기전에 Excel 에 내용을 csv 확장자로 변경해주어야 [ , ] 쉼표로 데이터를 구분 되도록해 오라클에서 처리를 해주게 됩니다. CSV로 만든데이터를 업로드 하게되면 아래와 같이 업로드를 확인할 수 있습니다. 업로드가 완료가되면 내용을 확인 하고 두번째 탭으로 넘어 가 Owner 및 테이블 각 필드별 컬럼등을 매칭 후 Import 하면 됩니다. 2021. 10. 28.
728x90
반응형