- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 오류해결
- Hostinger
- iframe
- javascript
- spring boot
- PROCEDURE
- sql
- 환경세팅
- 엘리멘터
- 쿼리개선
- pl/sql
- JSP
- function
- 트러블슈팅
- 자바스크립트
- 프로시저
- 이클립스
- dbeaver
- 티스토리챌린지
- PLSQL
- 워스프레스
- 워드프레스
- 클론코딩
- 오블완
- Oracle
- 문제해결
- 함수
- 오라클
- wordpress
- 배열
목록ORACLE (16)
개발 공부중

문제상황select한 화면에서 컬럼을 수정하려고 하는데, 수정이 안되고 아래처럼 오류문구가 떴다. There is no physical unique key defined for '테이블명' [Use All Columns] 버튼을 누르면 내가 수정하려는 데이터 외에 다른 데이터도 변경될 수 있어서[취소] 버튼을 눌러줬다. 오류원인수정하려는 해당 테이블에 기본키(primary key)나 고유키(unique key)가 정의되어 있지 않아서 생긴 오류.값을 수정하거나 삭제할 때, 어떤 행을 기준으로 업데이트할지 디비버가 알 수 없어서 생긴 팝업창이다. 해결방법1. 기본키 또는 고유키 설정하기 => 테이블 조건을 바꿀 수는 없었음 2. row조건만 잘 걸어서 수정하기=> 다른 티스토리를 참고했는데 나의 경우에는..
문제점저장시 대문자로 저장한 항목이소문자로는 검색이 안 된다고 해서 확인해보니오라클은 LIKE 검색시 대소문자를 구분한다고 한다. EX) 'LEE' 검색하면 'lee' 는 검색 안됨SELECT * FROM employeesWHERE NAME LIKE '%LEE%'; 해결방법간단히 UPPER() 혹은 LOWER() 함수를 이용해서 문자열을 모두 대문자 혹은 소문자로 바꿔주면 대소문자 구분 없이 검색을 할 수 있다.SELECT * FROM employeesWHERE UPPER(name) LIKE UPPER('%LEE%'); 주의점대규모 데이터는 UPPER() 혹은 LOWER() 함수를 이용하면 데이터가 변환되기 때문에 느려질 수 있다. 간단하게 해결 완료끝!

INSERT 기능을 새로 만든 후 폼전송을 하는데, ORA-01722: 수치가 부적합합니다 에러가 떴다. ORA-01722: 수치가 부적합합니다 오류 원인 1. 숫자형 컬럼에 문자열이나 특수문자가 포함된 값을 삽입하려고 할 때 2. 숫자로 변환할 수 없는 문자열을 숫자형 함수나 연산에 사용하려고 할 때 3. 숫자 형식에 맞지 않는 데이터(예: 쉼표 포함 숫자)를 사용하려고 할 때 나의 경우는 3번.테이블 생성시 NUMBER 타입의 컬럼을 만들었는데, 여기에 쉼표가 포함된 문자열을 INSERT해서 발생한 에러였다.확인해보니 1000단위 이상을 입력하니 쉼표가 자동으로 생기고 있었던 것. 해결과정 내가 제일 고민한 건,1. java로 처리 : 입력값에서 쉼표를 삭제 replaceAll2. Java..
ORA-00972 : 식별자의 길이가 너무 깁니다 테이블 이름, 열 이름, 또는 인덱스 등의 식별자가 허용된 최대 길이(30바이트)를 초과했을 때 생기는 오류. 나의 경우 테이블 이름이 너무 길었던 것이 문제였다. 더 짧은 이름으로 수정하면 된다.
java.sql.SQLRecoverableException: 소켓에서 읽을 데이터가 없습니다 서버 상태를 확인해본다. 나의 경우, 실행 후 무한 대기 상태 -> 소켓에서 읽을 데이터가 없습니다 가 나왔다.서버를 재시동하니 해결됐다.어느순간 서버연결에 문제가 있었던 거 같다.
나의 경우, 보안이 걸려져 있는 테이블에 컬럼을 하나 만들고 보안업데이트 작업을 해줘야하는데 하지 않았다.그래서 나온 오류이지만 찾아본 오류 해결방법과 가상열 (virtual column) 의 특징 ORA-01733: 가상 열은 사용할 수 없습니다 가상열(virtual column)에 insert 혹은 update, delete 하려고 했을 때 나오는 오류.다른 열의 값을 기반으로 계산된 값은 조회는 가능하지만, 변경이나 저장을 할 수 없다. 가상열의 특징 데이터 저장 없음: 가상 열은 물리적으로 데이터를 저장하지 않고, 대신 다른 열의 데이터를 기반으로 계산된 값을 제공한다.읽기 전용: 가상 열은 읽기 전용으로, 직접 값을 입력하거나 업데이트할 수 없다.동적 계산: 가상 열의 값은 조회 시 동적으로..
프로시저란,데이터베이스 내에서 특정 작업을 수행하는 코드 블록이다. 주로 여러 작업을 일괄적으로 처리할 때 사용한다.함수와 다르게 반환 값이 없고, 대신에 출력 매개변수를 통해 결과를 반환할 수 있다.프로시저 작성 방법-- 1. 프로시저 선언CREATE OR REPLACE PROCEDURE 프로시저_이름( -- 2. 매개변수 선언 매개변수 [ IN || OUT ] 타입; )IS-- 3. 변수 선언NAME VARCHAR2(10) := 'TEST' -- := 연산자로 변수에 값을 할당 --4. 프로시저 본문BEGIN[EXCEPTION 예외처리]END;프로시저 본문 안에 들어갈 수 있는 문법 정리1. SELECT INTO 문 : SELECT 문의 결과를 변수에 저장DECLARE -- 변수선언 ..
작업을 하다가 테이블이 렉 걸린 것 처럼 커밋이 안되는 상황이 생겼다. 오라클에서 테이블 락(Lock) 확인하고 해제하는 방법테이블 확인하고 1. 락 걸린 테이블 확인하기SELECT DISTINCT object_id FROM v$locked_object WHERE oracle_username = '사용자명'; 2. 락 걸린 테이블 갯수 확인하기SELECT COUNT(*) FROM v$locked_object vo, dba_objects do WHERE vo.object_id = do.object_id; 3. 락 걸린 세션 확인하기SELECT a.sid, a.serial#FROM v$session a, v$lock b, dba_objects cWHERE a.sid = b.sid AND b.id1 = c...