2013-04-11 2 views
0

다음과 같은 표가 있습니다. 열의 처음 두 문자를 oracle의 다른 값으로 바꾸는 방법

TAX_ID_ID CUST_ID TAX_ID_TYP_CD TAX_ID_NO TAX_ID_DRV_UPCS_NO 
1005004 2005004 ssn 100000006 100000006 
1005006 2005006 ssn 100000007 100000007 
1005009 2005009 ssn 100000008 100000008 
1005012 2005012 ssn 100000009 100000009 
1005014 2005014 ssn 100000010 100000010 
1005017 2005017 ssn 100000011 100000011 

나는 열 데이터 유형은 VARCHAR2입니다 (10) 대신에 25 TAX_ID_NO, TAX_ID_DRV_UPCS_NO의 처음 두 문자를 대체하고 싶었다. 이 업데이트 쿼리는 무엇이겠습니까

+0

[당신이 시도 무엇?] (HTTP : // mattgemmell .com/2008/12/08/what-have-you-tried /) –

+0

나는 이미 그것을 언급했다, 그들은 varchar2 유형이다. 나는 대체 기능을 시도했지만 운동하지 못했습니다. – user1614862

답변

2

나는 이것이 당신의 필요를 수행 할 것이라고 생각합니다.

Replace

Substring

String Concat

replace(TAX_ID_NO,TAX_ID_NO,'25'||substr(TAX_ID_NO, 3,length(TAX_ID_NO)-2)) 
replace(TAX_ID_DRV_UPCS_NO ,TAX_ID_DRV_UPCS_NO ,'25'||substr(TAX_ID_DRV_UPCS_NO , 3,length(TAX_ID_NO)-2)) 

편집

마지막으로 당신이 시도하십시오

UPDATE TABLE 
    SET TAX_ID_NO = replace(TAX_ID_NO,TAX_ID_NO,'25'||substr(TAX_ID_NO, 3,length(TAX_ID_NO)-2)), 
    SET TAX_ID_DRV_UPCS_NO = replace(TAX_ID_DRV_UPCS_NO ,TAX_ID_DRV_UPCS_NO ,'25'||substr(TAX_ID_DRV_UPCS_NO , 3,length(TAX_ID_NO)-2)) 
+0

답장을 보내 주셔서 감사합니다. :) – user1614862

-1

로 테이블을 Update해야 :

select 
    '25'||substr(TAX_ID_NO, 3), 
    '25'||substr(TAX_ID_DRV_UPCS_NO, 3) 
From YourTable; 

업데이트 테이블을 사용하여

update YourTable 
set TAX_ID_NO='25'||substr(TAX_ID_NO, 2), 
    TAX_ID_DRV_UPCS_NO='25'||substr(TAX_ID_DRV_UPCS_NO, 2); 
관련 문제