2016-08-17 2 views
0

루프에서 테이블을 업데이트하는 방법 현재이 C 럼의 값내가 할 수있는 테이블의 이름이

Internal_id not null VARCHAR2(10) 
RCR   not null VARCHAR2(10) 
IVC.   not null VARCHAR2(10) 

RCR

값 열 Internal_Id에

SER00001 
SER00002 upto SER00093 

처럼 저장 내부 ID에 맞게 RCR을 업데이트해야합니다.

SER00001과 마찬가지로 SERSRV00001

SER00002 it will be SERSRV00002 

에이 같은 업데이 트를 할 수있는 수있는

대신 쓰는 루프에서 업데이트하는 방법
RCR = lpad(Internal_id,3)||'SRV'||substr(Internal_id,4,6) where Internal_id = 'SER00001' 

많은 업데이트 문

답변

0
update MyTable set RCR = substr(Internal_id, 1, 3) || "SRV" || substr(Internal_id, 4); 

당신이 할 수있는 우선 select을 실행하여 올바른 것이 맞는지 확인하십시오.

쿼리를 해결하는 올바른 방법 당연히
select substr(Internal_id, 1, 3) || "SRV" || substr(Internal_id, 4) from MyTable; 
0

는 @Kusalananda 언급 한 SQL 문을 사용하고 있습니다. 그러나 루프 (Oracle PL/SQL)에서 특별히이 작업을 수행하기를 원한다면 다음과 같이이 방법을 사용할 수 있습니다.

begin 
    for i in (select * from can) 
     loop 
     update can 
     set RCR = substr(i.Internal_id, 1, 3) || "SRV" || substr(i.Internal_id, 4) 
     where Internal_id = i.Internal_id; 

     commit; 
    end loop; 
    end; 
관련 문제