일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 코드업
- if문
- 오라클
- 에러코드
- BaekJoon
- 별찍기
- CodeUp
- 코드업문제풀이
- java
- mysql
- oracle
- db
- 반복문
- SQL
- 자바별찍기
- 오라클에러코드
- 오늘부터개발자
- 백준
- 자바
- 조건문
- 문제풀이
- 파이썬
- for문
- 자바문제
- 오라클에러
- 오늘부터 개발자
- 자바문제풀이
- Python
- 임시테이블생성
- commit
- Today
- Total
목록Database (19)
매일 1%씩, 개발자로 성장하기
DCL(Data Control Language, 데이터 제어 언어) - 데이터 베이스 접근 권한을 부여하는 언어 - 데이터 베이스의 테이블에 영향을 직접적인 영향을 미치기 때문에 DCL 명령어를 입력하는 순간, 명령어에 해당하는 작업이 즉시 AUTO COMMIT 된다는 것을 유의하여야함. 1) GRANT - 데이터베이스에 대해서 특정 사용자에게 특정 작업이 가능하도록 액세스 권한을 제공 - WITH GRANT OPTION : 자신이 부여 받은 권한을 다른 계정의 사용자에게 부여할수 있음 - WITH ADMIN OPTION : 시스템 권한(관리자 계정에 부여된 권한 - DBA) 부여 GRANT 권한 ON 테이블명 TO 사용자; GRANT 권한 ON 테이블명 TO 사용자 WITH GRANT OPTION; 2..
TCL(Transaction Control Language, Transaction 트랜잭션 제어 언어) - 데이터의 보안, 무결성, 데이터 회복, 병행 수행 제어 등을 정의하는 데 사용하는 언어 1) COMMIT - 트랜잭션의 작업결과를 저장하고 반영 문법 : COMMIT; 2) ROLLBACK - 데이터 베이스를 마지막 COMMIT 된 시점의 상태로 복원하는 것 - 데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 될 수 있음 문법 : ROLLBACK; 3) SAVEPOINT - SAVEPOINT를 정의하면 ROLLBACK 할 때 현재시점에서 SAVEPOINT 까지 트랜잭션의 일부만 롤백할 수 있음 - 복수의 SAVEPOINT 를 정의할 수 있으며 동일 이름으로 SAVEPOINT를 정의하였을 때는..
[Oracle] ORA-00913: 값의 수가 너무 많습니다 - 삽입하려는 데이터의 개수가 지정한 컬럼의 개수보다 많을 때 발생하는 오류 INSERT INTO dept VALUES (90 ,'ACCOUNTING' ,'CHICAGO' ,'10' ,'err_test'); 컬럼수가 4개 인데, 5개를 입력하면 위와 같은 오류가 발생한다. 컬럼수와 입력하려는 데이터의 개수가 맞는 지 확인하면 오류가 해결된다.
- 테이블 구조를 확인하고 싶을 때 다른 툴에서는 DESC 테이블명; 하면 조회가 되었으나 PL/SQL Developer에서는 조회가 되지않아 스키마 구조 확인 하는 쿼리를 따로 정리하였음 - 그 외 알아두면 좋을 것 같은 쿼리도 추가 정리하였음 1) 테이블 목록 조회 SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE' ORDER BY OBJECT_NAME 2) 칼럼 목록 조회 SELECT TABLE_NAME ,COLUMN_NAME ,DATA_TYPE ,DATA_LENGTH ,DATA_PRECISION ,DATA_SCALE ,NULLABLE FROM COLS --WHERE TABLE_NAME NOT LIKE '%TBL' ORDER BY TA..
[Oracle] ORA-01438 : 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다 - 입력하려는 컬럼의 자릿수가 NUMBER(2) 인데 2자리를 초과하여 입력하여 오류가 발생 INSERT INTO dept VALUES (1234 ,'SQL' ,'BOSTON' ,'10'); 따라서, 자릿수에 맞게 1234 부분은 2자리 숫자로 변경하면 오류가 해결된다.
[Oracle] ORA-01476 : 제수가 0 입니다 - 제수 : 나눗셈에서 어떤 수를 나누는 수로 '10 나누기 5는 2' 에서 제수는 5 - 수학에서 어떤 수를 0으로 나누는 것은 불가능 SELECT SUM(COMM) / 0 -- 0부분에 다른 숫자를 넣거나 NVL로 처리 FROM EMP; 0부분에 다른 숫자를 넣거나 NVL로 처리하면 해결되는 에러이다. SELECT SUM(COMM) / 5 FROM EMP; SELECT SUM(COMM) / NVL(NULL, 2) FROM EMP;
ORA-00904 : 부적합한 식별자 - 테이블에 없는 컬럼을 조회했을 경우 발생하는 에러로 오탈자가 원인인 경우가 많음 - 정의된 열 이름과 대소문자가 일치하지 않는 경우 - 작은 따옴표('')와 큰 따옴표("") 사용 방법의 오류인 경우 - 열 이름에 특수 문자 사용한 경우 - 열 이름에 Oracle 예약어 사용한 경우 SELECT DEPTNO FROM EMP E INNER JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE E.ENAME = ALLEN; -- 'ALLEN' 문자라서 따옴표처리하면 에러 해결됨
ORA-00918 : column ambiguously defined 열의 정의가 애매합니다. - 조회 및 조건절에 있는 특정 컬럼이 어떤 테이블의 컬럼인지 명확하지 않을 때 발생하는 오류 SELECT DEPTNO FROM EMP E INNER JOIN DEPT D ON E.DEPTNO = D.DEPTNO WHERE E.ENAME = 'ALLEN'; SELECT절의 DEPTNO를 E.DEPTNO 로 변경하면 에러가 해결된다. 즉 컬럼을 명확하게 설정하면 된다.