db/oracle (53) 썸네일형 리스트형 oracle truncate 프로시져 사용 방법 oracle truncate 프러시저 에러얼마 전에 oracle truncate 사용 시 에러가 발생먼저 truncate 설명입니다. 오라클에서 TRUNCATE는 테이블의 모든 데이터를 삭제하는 명령어입니다. DELETE와는 몇 가지 중요한 차이점이 있습니다.TRUNCATE의 특징DML이 아닌 DDL: TRUNCATE는 데이터 정의 언어(DDL)에 속합니다. 따라서 ROLLBACK이 불가능합니다.빠른 속도: DELETE와 달리 테이블의 모든 행을 하나씩 삭제하는 것이 아니라, 데이터 영역을 통째로 초기화합니다. 이로 인해 대량의 데이터를 삭제할 때 매우 빠릅니다.테이블 구조는 유지: TRUNCATE를 실행해도 테이블 자체의 구조(컬럼, 제약조건 등)는 그대로 유지됩니다.AUTO_INCREMENT 초기화:.. oracle DDL, DML 차이점 oracle DDL, DML 차이점유형TRUNCATE (DDL)DELETE (DML)처리 엔진SQL 엔진에서 처리PL/SQL 엔진에서 직접 처리 가능프로시저 내 직접 사용불가능 (동적 SQL 필요)가능오류 발생 원인PL/SQL 엔진이 DDL을 인식하지 못함정상적으로 실행됨DDL과 PL/SQL의 분리된 처리 방식 오라클에서 SQL 명령어는 크게 두 가지로 분류됩니다. DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE와 같이 데이터를 조작하는 명령어입니다. 이들은 PL/SQL 엔진 내에서 직접 실행될 수 있습니다. DDL (Data Definition Language): CREATE, ALTER, DROP, TRUNCATE와 같이 데이터베이스.. oracle 소수점 이하 버림 oracle 소수점 이하 버림오라클에서 소수점 이하를 버리는 방법은 TRUNC 함수와 FLOOR 함수를 사용하는 것입니다. 두 함수는 특정 상황에 따라 다르게 작동합니다. 1. TRUNC 함수TRUNC는 지정한 자릿수 아래를 절사 하는 함수입니다. 자릿수를 생략하면 기본값인 0으로 간주하여 소수점 아래를 모두 버립니다.TRUNC(number, [decimal_places])number: 소수점 이하를 버릴 숫자decimal_places: 남길 소수점 이하 자릿수 (선택 사항)예시-- 소수점 이하 전체 버리기SELECT TRUNC(123.456) FROM DUAL; -- 결과: 123-- 소수점 첫째 자리까지 남기고 버리기SELECT TRUNC(123.456, 1) FROM DUAL; -- 결과: 123... 오라클 숫자 앞에 0 추가, LPAD 오라클 숫자 앞에 0 추가 오라클에서 10 미만의 숫자를 두 자리로 표시하려면 LPAD 함수를 사용하면 됩니다. LPAD 함수로 숫자 앞에 0 추가하기LPAD 함수는 주어진 문자열을 특정 길이로 만들면서 왼쪽에 특정 문자를 채워 넣는 역할을 합니다.사용법LPAD(expression, total_length, pad_character)expression: 두 자리로 만들 숫자나 문자열입니다. TO_CHAR를 사용해 숫자를 문자열로 변환해야 합니다.total_length: 원하는 최종 문자열의 총 길이입니다. 이 경우 2자리로 만드므로 **2**를 입력합니다.pad_character: 왼쪽에 채울 문자입니다. 이 경우 **'0'**을 입력합니다.예시10 미만의 숫자(예: 7)를 두 자리로 만들고 싶다면 다음.. oracle connect by level 함수 oracle connect by level 함수CONNECT BY 절의 역할CONNECT BY 절은 계층 구조를 정의하는 데 사용되며, 주로 다음과 같은 상황에서 활용됩니다. 트리 구조 데이터 조회: 조직도, 파일 시스템 등 부모-자식 관계의 데이터를 탐색할 때 사용됩니다. 반복적인 행 생성: 조건에 맞는 행을 인위적으로 여러 번 반복하여 생성할 때 사용됩니다. 이 경우가 바로 CONNECT BY LEVEL의 용도입니다.예시SELECT LEVEL, LPAD(TO_CHAR(LEVEL), 2, '0') AS formatted_numberFROM DUALCONNECT BY LEVEL LEVEL과 LEVEL: 오라클의 의사(Pseudo) 컬럼으로, 현재 행의 계층 레벨을 나타냅니다. 루트 노드(가장 상위 레벨).. union all union 차이점 오라클에서 [UNION ALL]은 중복을 제거하지 않습니다. 중복을 제거하려면 [UNION]을 사용해야 합니다.UNION과 UNION ALL의 차이점 UNION두 개 이상의 SELECT 문의 결과를 결합합니다. 중복되는 행을 자동으로 제거합니다. 중복을 확인하고 제거하는 과정 때문에 UNION ALL보다 처리 속도가 느립니다.예시SELECT employee_id FROM employeesUNIONSELECT employee_id FROM retired_employees;※ 이 쿼리는 employees 테이블과 retired_employees 테이블에서 중복되는 employee_id를 하나만 남기고 모두 합쳐서 보여줍니다. UNION ALL 두 개 이상의 SELECT 문의 결과를 결합합니다. 중복되는 행을.. oracle ORA-32044 ORA-32044: 순환 WITH 질의를 실행하는 중 주기가 감지되었습니다. 이 오류는 Oracle SQL에서 **재귀적 WITH 절 (Recursive WITH Query)**을 사용할 때 발생하는 문제입니다. 간단히 말해, 쿼리가 무한 루프에 빠져서 더 이상 진행할 수 없을 때 나타납니다. ORA-32044 오류의 원인 이 오류는 주로 다음과 같은 상황에서 발생합니다:순환 관계: 데이터 자체가 순환 구조를 가지고 있을 때 발생합니다. 예를 들어, 조직도에서 A 직원이 B 직원에게 보고하고, B 직원이 C 직원에게 보고하는데, C 직원이 다시 A 직원에게 보고하는 경우입니다. 쿼리는 A -> B -> C -> A ... 와 같이 계속해서 같은 경로를 반복하게 됩니다.잘못된 종료 조건: 재귀적 쿼리의 W.. oracle 10초 마다 저장 하기[통계] 통계 쿼리를 작성하다 10초마다 저장을 해야 하는 경우가 생김쿼리 양이 많아 10초마다 저장 시 저장 시간이 10초 단위로 저장 되지 않아 아래 처럼 처리 함 TO_CHAR(SYSDATE, 'SS')는 현재 시간의 '초'만 두 자리 숫자로 반환합니다. 이 값을 10초 단위로 버림하려면, 단순히 초 단위 값을 10으로 나눈 후 소수점을 버리고 다시 10을 곱하는 수학적 연산을 사용해야 합니다. 아래 쿼리는 SYSDATE를 기준으로 초 값을 10초 단위로 절삭합니다.SELECT TO_CHAR(SYSDATE, 'HH24:MI:') || LPAD(TRUNC(TO_CHAR(SYSDATE, 'SS') / 10) * 10, 2, '0') AS "10초 단위 시간"FROM DUAL;쿼리 설명TO_CHAR(.. Oracle 카멜 변환 INITCAP Oracle 카멜 INITCAP INITCAP 함수 INITCAP 함수는 문자열의 각 단어의 첫 글자만 대문자로 변환하고 나머지는 소문자로 변환합니다.SELECT INITCAP(column_name) FROM table_name;이 쿼리는 table_name 테이블의 column_name 열의 모든 값을 각 단어의 첫 글자만 대문자로 변환하여 조회합니다. SELECT INITCAP('COLUMN_NAME') FROM DUAL;이 쿼리는 결과는 'Column_Name'으로 출력됩니다. SELECT INITCAP('COLUMN NAME') FROM DUAL;이 쿼리는 결과는 'Column Name'으로 출력됩니다. SELECT REPLACE(INITCAP('COLUMN_NAME_AAA'),'_','') F.. Oracle 대문자 변경, 소문자 변경 Oracle 대소문자 변경 (UPPER, LOWER)오라클에서 대문자 변환을 조회하는 방법은 다음과 같습니다. UPPER 함수 사용UPPER 함수는 문자열을 대문자로 변환합니다.SELECT UPPER(column_name) FROM table_name WHERE UPPER(column_name) = UPPER('Abc');이 쿼리는 table_name 테이블의 column_name 열의 모든 값을 대문자로 변환하여 조회합니다. LOWER 함수 사용 LOWER 함수는 문자열을 소문자로 변환합니다.SELECT LOWER(column_name) FROM table_name WHERE LOWER(column_name) = LOWER('Abc');이 쿼리는 table_name 테이블의 column_name 열.. 이전 1 2 3 4 ··· 6 다음