[SQL] 오라클 여러행 삽입(INSERT) 방법
·
STUDY/DB SQL
여러행 삽입(INSERT) 방법1. INSERT ALL 사용INSERT ALL INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...) INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...) ... INTO [테이블] ( [COLUMN1], [COLUMN2], ...) VALUES ( [VALUE1], [VALUE2], ...)SELECT * FROM DUAL;가장 하단의 SELECT * FROM DUAL이 없으면 오류가 발생합니다.- INSERT ALL 문에서 SELECT * FROM DUAL 문을 사용하면 각 삽입이 성공했는지 확인할..
[SQL] 오라클 문자열 자르기 SUBSTR, SUBSTRB
·
STUDY/DB SQL
오라클에서 문자열을 자를 때는 SUBSTR 함수를 사용한다.문자열을 바이트 단위로 자를 때는 SUBSTRB 함수를 사용하면 된다. SUBSTRSUBSTR(문자열, 시작위치, 길이)SELECT SUBSTR('Hello World', 2) FROM DUAL; --문자열의 두 번째 위치("e")부터 문자열 끝까지 자른다.SELECT SUBSTR('Hello World', 2, 3) FROM DUAL;--문자열의 두 번째 위치("e")부터 세 자리("ell")까지 자른다.  SUBSTR 뒤에서 부터 문자열 자르기SELECT SUBSTR('hello world', -3) FROM DUAL;--문자열의 뒤에서 세 번째 위치("r")에서 문자열 끝까지 자른다.SELECT SUBSTR('hello world', -3,..
[SQL] 오라클 문자(CHR) 아스키코드(ASCII) 변환 방법
·
STUDY/DB SQL
아스키코드란 ? https://rebornbb.tistory.com/entry/IT-%EC%95%84%EC%8A%A4%ED%82%A4%EC%BD%94%EB%93%9C-%ED%91%9C-ASCII [IT] 아스키코드 표 (ASCII)대문자 : 65 ~ 90 소문자 : 97 ~ 122 숫자 : 48 ~ 57rebornbb.tistory.com 문자(CHR) 아스키코드(ASCII) 변환 방법SELECT CHR(65) from dual; -- 'A' 출력SELECT ASCII('A') from dual; -- 65 출력CHR(65) 함수는 ASCII 코드 65에 해당하는 문자 'A'를 반환합니다. 반면 ASCII('A') 함수는 문자 'A'를 ASCII 코드로 변환하여 65를 반환합니다.   특정 컬럼의 ASC..
[SQL] 오라클 trim, replace로 제거되지 않은 공백값 chr(49824) 제거하기
·
STUDY/DB SQL
연관 포스팅 링크:오라클 TRIM : https://rebornbb.tistory.com/entry/Oracle-TRIM%ED%95%A8%EC%88%98오라클 REPLACE : https://rebornbb.tistory.com/entry/Oracle-replace%ED%95%A8%EC%88%98오라클 CHR, ASCII : https://rebornbb.tistory.com/entry/Oracle-%EB%AC%B8%EC%9E%90CHR-%EC%95%84%EC%8A%A4%ED%82%A4%EC%BD%94%EB%93%9CASCII-%EB%B3%80%ED%99%98-%EB%B0%A9%EB%B2%95  분명 TRIM함수를 써서 원하는 데이터들의 공백을 지웠다고 생각했는데, 확인해보니 여전히 공백이 있었다.기존의..
[SQL] 오라클 DELETE,UPDATE후 COMMIT한 데이터 복구 방법
·
STUDY/DB SQL
오라클 DELETE나 UPDATE를 하고 COMMIT한 데이터 복구하기 TIMESTAMP SELECT [컬럼] FROM [테이블] AS OF TIMESTAMP 함수TIMESTAMP를 통한 복구 쿼리입니다.  시간으로 조회-- 30초전 데이터 조회SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '30' SECOND)WHERE 컬럼 = 'A'; -- 조건문 사용 가능 -- 10분전 데이터 조회SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) -- 1시간전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '1' HOUR) ..
[SQL] 오라클 문자열 치환 - REPLACE 와 REGEXP_REPLACE
·
STUDY/DB SQL
오라클 REPLACE 함수Oracle의 replace 함수는 문자열에서 특정 문자를 다른 문자로 바꾸는 함수입니다. replace 함수의 구문은 다음과 같습니다.REPLACE(컬럼명, '찾을문자', '변환문자')   REPLACE 사용방법-- 테이블에서 특정 문자열 대체하기UPDATE 테이블명SET 컬럼명 = REPLACE(컬럼명, '찾을문자열', '대체할문자열')WHERE 조건;-- 예시:UPDATE employeesSET first_name = REPLACE(first_name, 'John', 'Robert')WHERE last_name = 'Smith';-- SELECT 문에서 특정 문자열 대체하기SELECT REPLACE(컬럼명, '찾을문자열', '대체할문자열')FROM 테이블명;-- 예시:SEL..
[SQL] 오라클 프로시저 설명과 프로시저와 함수의 차이점
·
STUDY/DB SQL
프로시저(Procedure)란?특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것테이블에서 데이터를 추출, 조작하고 결과를 다른 테이블에 다시 저장하거나 갱신하는 처리를 할 때 프로시저를 사용한다. 프로시저와 함수 차이점함수는 반드시 값을 반환해야 하지만 프로시저는 반환 값을 가질 수 없습니다.함수는 SQL 쿼리에서 사용할 수 있지만 프로시저는 사용할 수 없습니다.함수는 일반적으로 데이터를 처리하는 데 사용되지만 프로시저는 일반적으로 데이터베이스 객체를 조작하는 데 사용됩니다.함수와 프로시저의 차이점특성함수프로시저반환 값필수선택사항SQL 쿼리사용 가능사용 불가데이터 처리일반적으로 사용일반적으로 사..
[SQL] 오라클 ORA-01439: 데이터 유형을 변경할 열은 비어 있어야 합니다 해결하기
·
STUDY/DB SQL
오라클에서 컬럼 데이터타입 변경하기  테이블의 컬럼에 데이터가 있는 상태서 컬럼의 타입을 변경할 일이 생겼다.데이터가 있는 상태에서 컬럼의 타입을 그냥 변경하면 아래와 같은 에러가 발생한다.  ORA-01439: 데이터 유형을 변경할 열은 비어 있어야 합니다  이 경우 열에 있는 데이터를 삭제하고 수정해야 한다는 것인데,데이터를 삭제하지 않고 컬럼의 타입을 바꿔야 할 상황이 있어여러 방법이 있겠지만, 나는 아래와 같은 방법으로 해결했다.  --1. 테이블에 새로운컬럼추가ALTER TABLE tablename ADD newcolumn NUMBER;--2. 기존컬럼데이터를 형변환해서 새로운컬럼에 데이터저장UPDATE tablename SET newcolumn = TO_NUMBER(oldcolumn);--3...