■에러 ORA-12899 : 열 string의 값이 너무 큽니다 (실제 : string, 최대 : string) 이 문제의 대부분은 서로 다른 플랫폼간에 데이터를 교환할 때 발생한다. (특히 Windows -> Unix 시스템으로 가져오는 프로세스의 경우) ・내보낸 데이터 가져오기 ・데이터베이스 링크를 사용한 INSERT ・CHAR 유형을 사용한 문자열 조인 가 주요발생 타이밍이다. ■원인1 데이터를 제공하는 캐릭터 세트와 입력 대상의 데이터베이스 캐릭터 세트는 동일한 문자로도 바이트수가 다른 문자열을 사용한다. 대표적으로는 반각 가타카나이다. Shift JTS의 경우 반각 가타카나는 'A6'x ~'DF'x로 1바이트로 저장할 수 있지만, EUC-JP의 경우 '8E26'x ~ '8E5F'x로 길이는 2바..
■현상 외부테이블에서 파일이 작은 경우에는 에러가 되지 않지만 큰 파일을 가져오려고 하면 에러가 된다. KUP-04020: found record longer than buffer size supported, 524288 ■원인 EXTERNAL TABLE(외부 테이블)을 이용하여 파일을 읽을 때 읽기 버퍼 오버플로 예를 들어 Windows에서 실행되는 오라클에서 텍스트 파일을 캡처하는 외부 테이블 BIG_TEXT_TABLE에서 오류가 발생할 수 있다. CREATE TABBLE BIG_TEXT_TABLE( TEXT VARCHAR2(4000) ) ORGANIZATION EXTERNAL( TYPE ORACLE_LOADER DEFAULT DIRECTORY external_data ACCESS PARAMETERS..
■에러 EXP-00091: 의심스러운 통계를 내보내는 중입니다. ■현상 이 에러는 현지 서버에서 데이터를 Export를 하기 위해 사내 환경에서 실행했을 때 발생한 에러이다. 미리 작성한 배치파일을 가지고 exp.exe를 실행한 결과 export시 EXP-00091: Exporting questionable statistics가 발생했다. ■원인 EXP-00091 오류는 오류보다 경고에 가깝다. 의심스러운 통계 = 아마 도움이 되지 않는 불필요한 통계 정보를 출력하고 있다. 통계는 테이블의 전체 데이터 분포를 기반으로 작성되었으며 열의 상한값과 하한값은 고유한 내부 형식으로 가지고 있다. 이들 내부 정보에 영향을 주는 파라미터 및 환경 변수가 지정이 된 상태에서의 익스포트 처리가 되고 있다고 하는 것이다..
■에러 IMP-00032: SQL문이 버퍼 길이를 초과했습니다. ■현상 이 에러는 현지 서버에서 데이터를 Import를 하기 위해 사내 환경에서 실행했을 때 발생한 에러이다. 미리 작성한 배치파일을 가지고 imp.exe를 실행한 결과 import시 IMP-00032: SQL statement exceeded buffer length가 발생했다. ■원인 IMP-00032 오류는 테이블을 조작하는 DDL, DML이 사용하는 버퍼가 부족하기 때문에 발생한다. 컬럼수가 많은 큰 사이즈의 데이터(LONG/LOB 등) 등을 삽입하고 있는 것이 예상된다. Import 유틸리티(utility)의 디폴트 버퍼 사이즈는 XXXX 바이트이기 때문에 디폴트 상태로는 버퍼 크기가 작다. ■대응 Import 유틸리티(utilit..
ORA-01481 : 숫자 형식 모델이 잘못되었습니다. 01. ORA-01481 오류는 어떤 오류인가? TO_CHAR(수치) 함수 또는 TO_NUMBER 함수 등으로 어떤 형식 모델을 사용하여 변환을 수행 할 때 서식 모델에 잘못된 숫자 형식을 지정하고 있기 때문에 발생하는 오류이다. 02. ORA-01481 오류의 오류 출력 ex) 문자열 -200을 음수 부호가 있는 숫자 3자리로 변환하려고 다음 SQL문을 발행한 경우 SQL>SELECT TO_NUMBER('-200', '-999') AS RESULT FROM DUAL; SELECT TO_NUMBER('-200', '-999') AS RESULT FROM DUAL 1행에서 에러가 발생했습니다. ORA-01481: 숫자 형식 모델이 잘못되었습니다. 03..
오라클에서 특정 컬럼의 값에 대한 순위를 구하기 위해서 순위 함수(RANK, DENSE_RANK, ROW NUMBER)를 사용하면 된다. 순위 함수의 순위는 OVER 함수 내부의 ORDER BY 컬럼 값으로 결정된다. RANK() : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 중복 순위 개수만큼 다음 순위 값을 증가시킨 값으로 표시 DENSE_RANK() : 동일한 값인 경우 중복 순위를 부여한 후, 다음 순위는 중복 순위와 관계없이 순차적으로 다음 순위 값을 표시 ROW NUMBER() : 중복 관계 없이 순차적으로 순위를 표시 그룹별 순위 조회된 결과에서 그룹별로 순위를 부여해야 하는 경우에는 PARTITION BY절을 추가하면 해당 그룹내에서의 순위가 표시된다.
시노 님(SYNONYM)이란? 오라클(Oracle) 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체 이름(=별칭 즉, Alias)을 의미한다. 실질적으로 그 자체가 객체가 아닌 객체에 대한 직접적인 참조이다. 대체로 다른 유저(= 스키마)의 객체를 참조할 때 많이 사용. 예제) EMPLOYEE 테이블을 EMP라는 별칭을 주면 「SELECT * FROM EMP;」와 같이 다른 이름으로 접근할 수 있다. 다른 이름을 사용한 SQL은 테이블 본체의 이름이 바뀌어도 영향을 받지 않는다. 즉, EMPLOYEE라는 테이블명을 EMPLOYEES라고 변경을 하더라도 「SELECT * FROM EMP;」는 정상적으로 실행이 된다. 시노님을 사용하는 이유 ①데이터베이스의 투명성을 제공하기 위해 사용한다. ②실무에서 다..
트랜잭션(Transaction) - 트랜잭션은 데이터베이스(Database)에서 데이터를 처리의 한 단위를 의미한다. - 오라클 서버에서 발생하는 여러 개의 SQL문들이 하나의 논리적인 작업 단위로써, 성공하거나 실패하는 일련의 SQL문을 트랜잭션이라고 보면 된다. - 오라클 서버는 트랜잭션의 개념에 의해 데이터의 일관성을 보증하고, 안정적인 복구가 가능하다. - 트랜잭션은 데이터를 일관되게 변경하는 DML문장으로 구성된다. ※ DML문장 = COMMIT, ROLLBACK, SAVEPOINT, ROLLBACK TO 트랜잭션의 시작 시점 - 실행 가능한 SQL 문장이 제일 처음 실행될 때 트랜잭션의 종료 시점 - COMMIT이나 ROLLBACK - DDL이나 DCL문장의 실행(자동 COMMIT) - 기계 ..
- Total
- Today
- Yesterday
- Oracle
- rollback
- in/out/ref 차이점
- in/out/ref
- 유틸리티
- DECLARE절
- 후나빙
- VB.Net
- USER_SYS_PRIVS
- NLog
- TrimEnd
- 에러
- PL/SQL 실행문
- 참조전달
- grant
- vba
- REVOKE
- commit
- DBA_SYS_PRIVS
- 유틸리티에러
- 초기화파라미터파일
- 동기통신
- C#
- 시간차이
- BEGIN절
- in/out/ref 공통점
- EXCEPTION절
- PL/SQL 예외처리문
- in/out/ref 예제
- pl/sql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |