2013-12-17 3 views
0

길이가 varchar2 (30) 인 테이블에 "EMP_GROUP"이라는 열이 하나 있습니다. 많은 리소스가 테이블에 데이터를 보내는 응용 프로그램을 개발 중입니다. 그래서이 열을 길이 30으로 제한하고 싶습니다. 현재 다른 리소스의 데이터가 들어 오면 길이가 30보다 큰 레코드를 입력 할 수 있습니다.삽입시 열의 길이를 어떻게 제한합니까?

여기서 도와주세요.이 열만 어떻게 제한합니까? 30자를 입력 할 수 있으며 30보다 긴 길이의 데이터가 오면 허용되지 않습니다.

답변

1

값을 자르고 삽입을 시도하기 전에는 항상 ORA-12899: value too large for column이됩니다.

이 작업을 수행하는 방법은 일종의 API 뒤에 테이블을 숨기는 것입니다. 모든 삽입은 삽입을 수행하는 프로 시저 호출을 통해 수행됩니다. 또는 테이블에 대한 뷰를 작성하고 대신 대신 트리거를 사용하여자를 처리 할 수 ​​있습니다.

0

INSERT을 수행 할 때 삽입 할 값은 SUBSTR뿐입니다.

INSERT INTO my_table (emp_group) 
VALUES (SUBSTR(p_my_value, 1, 30)); 

그러나 Jeffrey가 지적했듯이 응용 프로그램 내에서 이러한 삽입에 대해 단일 지점을 원합니다. 개념은 API 뒤에있는 DML에 적용해야합니다. Oracle Database 내에서 PL/SQL을 데이터 액세스 레이어로 사용하는 것은 합리적인 방법입니다.

관련 문제