2009-11-10 2 views
0

Oracle 10g에서 작업 중입니다. 아래 표에 나와있는 것처럼 내 테이블의 데이터를 저장합니다.하나의 열에서 데이터 분할 및 분할 된 데이터로 새 열 업데이트

 
1722999340KK000200000 

1444210829AB1001EX003 

1444300000CD0148EX003 

1722999340KL000200000 

I 디지트의 비의 데이터를 분할 할 (4, 6, 6, 5) 사람 좀을 줄 수 있는지 아래 도시에 저장 상이한 열

 
(A1 || A2 || A 3 || A4) 

1444 || 210829 || AB1001 || EX003 

는 음미 같은 방법으로 달성하는 방법에 대한 포인터.

답변

3

필자는 오라클과 관련하여 전문가가 아니지만 한 번 소개하겠습니다. 원래 열을 가정하면 ORIG라고, 원래의 데이터는 어떤 문자열 유형이다 :

update <tablename> set A1 = substr(ORIG, 0, 4), 
         A2 = substr(ORIG, 4, 6), 
         A3 = substr(ORIG, 10, 6), 
         A4 = substr(ORIG, 16, 5); 

희망이

+0

SUBSTR 함수가 확실히 구현하는 가장 간단한 방법입니다 도움이됩니다. – kdmurray

+0

감사합니다. Tom. 거의 맞아. 숫자 위치에 작은 변화가 있어야했습니다. update temptab set C1 = substr (tempcol, 0, 4), C2 = substr (tempcol, 4, 6), C3 = substr (tempcol, 10, 6), C4 = substr (tempcol, 16, 5) ; 다시 한번 감사드립니다. – novice

+0

반갑습니다. 그러나, 당신의 자리가 다른 곳을 볼 수 없습니다 ... –