SQL 15

[SQL] ORA-00932 데이터 유형이 일치하지 않습니다

오류 로그가 preparedStatement.setNull(18,1111) 로 계속 났었다.18번째 컬럼이 오류라는데 전혀 그런 것 같지 않았다. 원인을 찾아보자 🚨 오류 원인1111은 java.sql.Types.OTHER에 해당하는 값이지만, Oracle에서 이 타입을 사용하는 칼럼이 아니라면 오류가 납니다.특히, 해당 칼럼이 VARCHAR2, NUMBER, DATE와 같이 일반적인 타입인데 1111을 넣으면 "부적합한 열 유형" 또는 유사한 타입 관련 오류가 발생합니다. ✅ #{param, jdbcType=VARCHAR} 형태로 사용 INSERT INTO users (name, age) VALUES (#{name, jdbcType=VARCHAR}, #{age, jdbcType=INTEGER}) ..

[SQL] ORA-01461: LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다

이 오류는 현업에서 데이터 수정하시는데 자꾸 오류가 난다고 하셔서로그를 보다가 발견한 오류이다.컬럼에 설정된 문자열 사이즈보다 큰 문자열을 넣으려고 하면 나는 오류이다.매우 간단! 🧠 이 오류는 왜 발생할까?이 오류는 주로 VARCHAR2(4000) 타입의 컬럼에 4000바이트가 넘는 문자열을 삽입하려 할 때 발생합니다.Oracle DB에서 VARCHAR2 컬럼은 최대 4000바이트까지만 저장할 수 있기 때문에,그보다 큰 문자열을 넣으려고 하면 다음과 같은 오류가 발생하게 됩니다:ORA-01461: can bind a LONG value only for insert into a LONG column이럴 때는 CLOB(Character Large Object) 타입으로 컬럼을 변경하거나,입력 데이터를 조..

[SQL] ORA-01427 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다.

SQL을 다루다 보면 다음과 같은 오류 메시지를 접한 적이 있을 겁니다.ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다이 오류는 서브쿼리(Subquery)를 사용할 때 자주 발생하며, SQL을 작성할 때 한 번쯤은 꼭 겪게 되는 문제 중 하나입니다.✅ 오류 원인SELECT 문 안에 있는 서브쿼리(subquery)가 2개 이상의 행(row)을 반환했는데,그 서브쿼리를 사용하는 위치는 단 하나의 값만 허용하는 곳일 때 발생하는 오류입니다.예시:SELECT nameFROM employeesWHERE dept_id = (SELECT dept_id FROM departments WHERE location = 'Seoul');위 쿼리에서 location = 'Seoul'인 departmen..

Cannot delete or update a parent row

Cannot delete or update a parent row: a foreign key constraint fails (`db`.`t_seg`, CONSTRAINT `FK_SEG01` FOREIGN KEY (`RSEQ`) REFERENCES `tt_seg` (`RSEQ`))Query is: DELETE DELETE A, B, C FROM A a INNER JOIN B b ON b.key = a.key INNER JOIN C c ON c.key = a.key WHERE 1 = 1 이런 식으로 여러 테이블을 한번에 DELETE 하는 경우 문제가 발생했다. 해결 방법으로, 1. 삭제 순서 조정 해당 행을 참조하는 FOREIGN KEY를 먼저 삭제 하고 최초의 행을 삭제한다. 2. 외래키 체크 설정을 해제..

[SQL] RDBMS와 NoSQL 차이점

최근 Redis를 다뤄보면 RDBS와 NoSQL의 차이에 대해서 궁금해졌다. RDBMS DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해 주는 소프트웨어이다. 또한 기존의 RDBMS에서의 저장 방식은 SQL에 의해 저장되고 있으며 정해진 스키마에 따라 데이터를 저장해야 한다. RDBMS에는 DBMS앞에 R이 붙어 있습니다. 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. 이름과 같이 RDBMS는 RDB를 관리하는 시스템이며 RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스입니다. 관계형 데이터베이스(RDMBS)는 아래와와 같이 구성된 테이블이 다른 테이블..

[SQL] Column 'product_id' in group statement is ambiguous

GROUP BY Column 'product_id' in group statement is ambiguous Column 'partner_id' in group statement is ambiguous Column 'product_id' in group statement is ambiguous Column 'product_id' in group statement is ambiguous Column 'partner_id' in group statement is ambiguous 끊임없이 이런 로그들이 떴다. 대수롭지 않게 느꼈는데, 평상시에 굉장히 실수를 하고 있다는 걸 깨달았다. 이 외에도 긴 쿼리였는데, 잘라서 확인하다 보니 이 쿼리에서 문제가 있는 걸 알았고, 습관적으로 GROUP BY 를 사용하고 ..

[SQL] SQLD - SQL의 종류

SQL의 종류 종류 명령어 DML SELECT, INSERT, UPDATE, DELETE DDL CREATE, ALTER, DROP, RENAME DCL GRANT, REVOKE TCL COMMIT, ROLLBACK DML INSERT INTO PLAYER (PLAYER) VALUES (‘PJS’); UPDATE PLAYER SET BACK_NO = 60; DELETE FROM PLAYER; SELECT PLAYER_ID FROM PLAYER; SELECT PLAYER AS “ ” 선수명 FROM PLAYER; DISTINCT : 1 중복 시 회만 출력 DDL 데이터 유형 - CHAR(s) : 고정 길이 문자열 정보 최대 . 길이 만큼 공간 채움 ‘AA’ = ‘AA ’ - VARCHAR2(s) : 가변 ..

반응형