728x90
반응형

DB 228

[DB][Oracle] TO_TIMESTAMP 함수

TO_TIMESTAMP 함수는 문자열을 TIMESTAMP 데이터 타입으로 변환하는 데 사용됩니다.형식 문자열을 지정하여 입력 문자열의 형식을 정의할 수 있습니다.TO_TIMESTAMP(char[, format])char: 변환할 문자열입니다. 이 문자열은 날짜와 시간 정보를 포함하고 있어야 합니다.format (선택적): 문자열의 형식을 지정하는 형식 문자열입니다. char 문자열이 이 형식에 맞춰서 TIMESTAMP로 변환됩니다. 주요 날짜 및 시간 형식 문자열YYYY: 4자리 연도MM: 월DD: 일HH24: 시간 (0-23)MI: 분SS: 초FF: 프랙션 초 (밀리초 등)  기본 TIMESTAMP 변환 SELECT TO_TIMESTAMP('2024-08-09 15:30:00', 'YYYY-MM-DD ..

DB 2024.08.18

[MySQL] Oracle의 NVL, NVL2를 MySQL에서 구현하기

MySQL에서는 NVL와 NVL2와 유사한 기능을 하는 함수로 IFNULL과 COALESCE, 그리고 IF 함수가 있습니다.각 함수의 사용법과 기능은 다음과 같습니다. IFNULLIFNULL 함수는 오라클의 NVL과 유사하게 첫 번째 인수가 Null인 경우 두 번째 인수를 반환합니다.IFNULL(expr1, expr2)SELECT IFNULL(commission_pct, 0) AS commission FROM employees;이 예제에서는 commission_pct가 Null이면 0을 반환하고, Null이 아니면 commission_pct 값을 반환합니다. COALESCECOALESCE 함수는 다수의 인수를 받아 첫 번째로 Null이 아닌 값을 반환합니다.오라클의 NVL과 비슷하지만, 더 많은 인수를 ..

DB 2024.08.10

[Oracle] NVL/ NVL2

오라클의 NVL와 NVL2 함수는 둘 다 Null 값을 처리하는 데 사용됩니다.하지만 그 기능과 사용법에는 차이가 있습니다. NVLNVL 함수는 첫 번째 인수가 Null인 경우 두 번째 인수로 대체합니다.첫 번째 인수가 Null이 아니면 첫 번째 인수를 반환합니다.NVL(expr1, expr2)SELECT NVL(commission_pct, 0) AS commission FROM employees;이 예제에서는 commission_pct가 Null이면 0을 반환하고, Null이 아니면 commission_pct 값을 반환합니다. NVL2NVL2 함수는 첫 번째 인수가 Null이 아닌 경우 두 번째 인수를 반환하고,첫 번째 인수가 Null인 경우 세 번째 인수를 반환합니다.NVL2(expr1, expr2,..

DB 2024.08.09

[SQLD] Entity, Instance, Attribute

엔티티(Entity)엔티티는 데이터베이스에서 관리해야 하는 중요한 정보의 단위 또는 개체를 나타냅니다. 엔티티는 주로 현실 세계의 대상(사물, 사람, 개념 등)을 모델링하며, 데이터베이스 내에서 테이블로 구현됩니다.예를 들어, 사용자(User), 제품(Product), 주문(Order) 등이 엔티티가 될 수 있습니다. 이 엔티티는 데이터베이스 설계 시 중요한 요소로, 각 엔티티는 고유한 속성(Attribute)을 가지고 있습니다.인스턴스(Instance)인스턴스는 특정 엔티티에 대한 구체적인 데이터의 예를 말합니다. 즉, 엔티티는 일반적인 개념을 나타내고, 인스턴스는 그 개념의 특정한 사례를 나타냅니다.예를 들어, 사용자(User) 엔티티가 있다고 가정하면, 사용자 엔티티의 한 인스턴스는 '홍길동', '..

DB 2024.08.08

[MySQL][Oracle] Boolean 데이터 타입의 차이점

MySQL에서는 Boolean 타입을 직접 지원하지 않으며,대신 TINYINT(1)을 사용해 Boolean처럼 사용합니다.따라서 TRUE는 1, `FALSE는 0으로 표현됩니다.만약 Oracle에서 use_yn 컬럼을 Boolean 타입처럼 사용하고 있었다면,MySQL로 마이그레이션할 때 이러한 차이로 인해 문제가 발생할 수 있습니다. SELECT * FROM table_name WHERE use_yn IS TRUE;⬇️SELECT * FROM table_name WHERE use_yn = 1; 그래서 mysql에서는 위 SQL 대로 작성했을 때 작동되었지만,oracle에서는 에러가 발생하여 아래와 같은 SQL로 수정해주어야 한다.

DB 2024.08.07

[DB][Oracle] DECODE

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/DECODE.html SQL Language Reference docs.oracle.com DECODE는 Oracle SQL에서 조건에 따라 다른 값을 반환하는 데 사용되는 함수입니다.간단하게 설명하면, 특정 값이 조건에 맞으면 그에 해당하는 결과를 반환하고,그렇지 않으면 기본값이나 다른 조건에 따른 값을 반환합니다.DECODE는 CASE 문의 간단한 형태로 생각할 수 있습니다. DECODE(표현식, 조건1, 결과1, 조건2, 결과2, ..., 조건N, 결과N, 기본값) 표현식: 비교할 값입니다.조건1, 조건2, ..., 조건N: 표현식과 비교할 값입니다.결과1, 결과2, ..., 결..

DB 2024.08.05

[DB][Oracle] FETCH FIRST 1 ROW ONLY 와 ROWNUM 1의 차이

FETCH FIRST 1 ROW ONLY와 ROWNUM = 1은 Oracle SQL에서 특정 개수의 행을 가져올 때 사용됩니다. 그러나 이 두 가지는 서로 다른 방식으로 동작하며, 사용 사례에 따라 적합한 상황이 다릅니다. FETCH FIRST 1 ROW ONLY이 구문은 SQL:2008 표준에 도입된 구문으로, 특정 수의 행을 가져오는 작업을 수행합니다. ORDER BY 절과 함께 사용될 때 특히 유용하며, 그 의미가 명확합니다. 예를 들어, 가장 높은 점수를 가진 학생의 정보를 가져올 때 ORDER BY score DESC와 함께 사용하면 됩니다.SELECT *FROM studentsORDER BY score DESCFETCH FIRST 1 ROW ONLY; 이 구문은 ORDER BY 절이 있는 상황..

DB 2024.07.24

[DB][Oracle] FETCH FIRST 1 ROW ONLY

FETCH FIRST 1 ROW ONLYOracle SQL에서 가장 첫 번째 행만 가져오는 구문입니다. MySQL의 LIMIT 1과 유사합니다.https://jjoyling.tistory.com/38 [ORACLE] 행 제한행 제한 특정 조건에 따라 행 개수를 제한하기 위해 사용하는 SQL OFFSET 건수 { ROW | ROWS } FETCH { FIRST | NEXT } { 건수 | 숫자 PERCENT } {ROW | ROWS} { ONLY | WITH TIES } ORDER BY SQL 수행 결과의 정렬 기준 OFFSET 행jjoyling.tistory.com

DB 2024.07.23

[DB][Oracle] T0_CHAR 날짜형식

https://velog.io/@newv/Oracle-%ED%95%A8%EC%88%98-TOCHAR%EC%99%80-TODATE-%EA%B0%84%EB%8B%A8-%EB%B9%84%EA%B5%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EC%98%88%EC%A0%9CTO_CHAR(날짜타입값, '날짜포맷') : 날짜타입의 데이터를 '날짜포맷'에 따라 문자열로 변환 >" data-og-host="velog.io" data-og-source-url="https://velog.io/@newv/Oracle-%ED%95%A8%EC%88%98-TOCHAR%EC%99%80-TODATE-%EA%B0%84%EB%8B%A8-%EB%B9%84%EA%B5%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9%E..

DB 2024.07.21

[DB][Oracle] PL/SQL 블록을 사용하여 한번에 insert 하기

SET @TNT = (SELECT TENANT_CD FROM SYS_COMPANY LIMIT 1);MysQL 에선 변수를 세팅해서 한번에 Insert 문을 쓸 때 사용했는데,Oracle에서 변수를 사용할 수 없기 때문에 직접 변수를 사용하는 방식(@TNT)을 사용할 수 없습니다.대신, 변수를 사용할 필요가 있는 경우 PL/SQL 블록을 사용하거나 다른 방법으로 값을 전달해야 합니다.DECLARE v_tenant VARCHAR2(20) := 'TENANT1';BEGIN INSERT INTO SYS_CODE_CLS SELECT v_tenant, 'col1', 'col2', 1, 'col3', 1, NULL, NULL, 0, 1, 'col4', CURRENT_TIMESTAMP, 'col5', ..

DB 2024.07.17
728x90
반응형