2015-10-15 74 views
3

我有一個包含數據如下字符串:查找和甲骨文替換字符串

'ID,MASTER_ID,DATA_SOURCE_ID,DATA_SOURCE_NAME,CHILD_COUNT,CHILD_COUNT_TEXT,PARENT_OR_CHILD,RECORD_TYPE,FULL_NAME_LNF,FULL_NAME_FNF,FIRST_NAME,LAST_NAME,PREFIX,SUFFIX,MIDDLE,TITLE,NAME_OF_ORGANIZATION,NAME_OF_BUSINESS,TYPE_OF_ENTITY,ADDRESS,CITY,STATE,PROVINCE,POSTAL_CODE,COUNTRY,POSTAL_ADDRESS_TYPE,PHONE_AREA_CODE,PHONE_NUMBER,PHONE_COUNTRY_CODE,PHONE,PHONE_TYPE,EMAIL_ADDRESS,URL,HCP_SPECIALTY,HCP_TYPE,HCP_SUBTYPE,RECIPIENT_STATUS,COVERED_RECIPIENT_FLAG,RELATIONSHIP_TO_CR,LAST_MODIFIED_BY,LAST_MODIFIED_DATE,PRIMARY_LICENSE_STATE_AR,PRIMARY_LICENSE_NUM_AR,DEA_REG_NUM_AR,NPI_NUM_AR,UPIN_AR,TAX_PAYER_ID_AR,PRIMARY_LICENSE_STATE_CR,PRIMARY_LICENSE_NUM_CR,DEA_REG_NUM_CR,NPI_NUM_CR,UPIN_CR,DEA_NUMBER,NPI,UPIN,TIN,TAX_PAYER_ID_CR,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,ATTRIBUTE16,ATTRIBUTE17,ATTRIBUTE18,ATTRIBUTE19,ATTRIBUTE20,ATTRIBUTE21,ATTRIBUTE22,ATTRIBUTE23,ATTRIBUTE24,ATTRIBUTE25,ATTRIBUTE26,ATTRIBUTE27,ATTRIBUTE28,ATTRIBUTE29,ATTRIBUTE30,SOURCE_REGION_CODE,SOURCE_SYSTEM_CODE,REC_INVALID_FLAG,REVISION_FLAG,IS_ACTIVE,PROCESS_STATE,RECIPIENT_CATEGORY01,RECIPIENT_CATEGORY02,RECIPIENT_CATEGORY03,RECIPIENT_CATEGORY04,RECIPIENT_CATEGORY05,RECIPIENT_CATEGORY06,RECIPIENT_CATEGORY07,RECIPIENT_CATEGORY08,RECIPIENT_CATEGORY09,RECIPIENT_CATEGORY10,RECIPIENT_CATEGORY11,RECIPIENT_CATEGORY12,RECIPIENT_CATEGORY13,RECIPIENT_CATEGORY14,RECIPIENT_CATEGORY15,RECIPIENT_CATEGORY16,RECIPIENT_CATEGORY17,RECIPIENT_CATEGORY18,RECIPIENT_CATEGORY19,RECIPIENT_CATEGORY20,RECIPIENT_CATEGORY21,RECIPIENT_CATEGORY22,RECIPIENT_CATEGORY23,RECIPIENT_CATEGORY24,RECIPIENT_CATEGORY25,RECIPIENT_CATEGORY26,RECIPIENT_CATEGORY27,RECIPIENT_CATEGORY28,RECIPIENT_CATEGORY29,RECIPIENT_CATEGORY30,IS_PICKABLE,IS_GOLDEN,PRIMARY_LICENSE_NUM,PRIMARY_LICENSE_EFFECTIVE,PRIMARY_LICENSE_EXPIRES,TERTIARY_LICENSE_EFFECTIVE,TERTIARY_LICENSE_EXPIRES,SECONDARY_LICENSE_EFFECTIVE,SECONDARY_LICENSE_EXPIRES,SECONDARY_LICENSE_NUM,TERTIARY_LICENSE_NUM,ADDRESS2,PHONE_AREA_CODE2,PHONE_NUMBER2,PHONE_COUNTRY_CODE2,PHONE_TYPE2,TERRITORY,PRIMARY_AFFILIATION,PRIMARY_AFFILIATION_STATE,REQUEST_WF_STATE,IS_EDIT_LOCKED,SOURCE_SYSTEM_RECIPIENT_ID,CREATED_BY,CREATION_DATE,APPROVER_COMMENTS,SECONDARY_LICENSE_STATE,PRIMARY_LICENSE_STATE,NPI_DATA,STATE_DATA,DEA_DATA,RPPS,FINESS,SIREN_NUMBER,DPC' 

可有人告訴我如何發現只有下列值

DATA_SOURCE_ID, 
     LAST_MODIFIED_BY, 
     LAST_MODIFIED_DATE, 
     ATTRIBUTE13, 
     ATTRIBUTE14, 
     ATTRIBUTE15, 
     ATTRIBUTE16, 
     ATTRIBUTE17, 
     ATTRIBUTE18, 
     ATTRIBUTE19, 
     ATTRIBUTE20, 
     ATTRIBUTE21, 
     ATTRIBUTE22, 
     ATTRIBUTE23, 
     ATTRIBUTE24, 
     ATTRIBUTE25, 
     ATTRIBUTE26, 
     ATTRIBUTE27, 
     ATTRIBUTE28, 
     ATTRIBUTE29, 
     ATTRIBUTE30, 

然後用替換它們以下字符串

'L.DATA_SOURCE_ID,L.LAST_MODIFIED_BY,L.LAST_MODIFIED_DATE,L.ATTRIBUTE13,L.ATTRIBUTE14,L.ATTRIBUTE15,L.ATTRIBUTE16,L.ATTRIBUTE17,L.ATTRIBUTE18,L.ATTRIBUTE19,L.ATTRIBUTE20,L.ATTRIBUTE21,L.ATTRIBUTE22,L.ATTRIBUTE23,L.ATTRIBUTE24,L.ATTRIBUTE25,L.ATTRIBUTE26,L.ATTRIBUTE27,L.ATTRIBUTE28,L.ATTRIBUTE29,L.ATTRIBUTE30,' 
+0

我看不到一個*數據庫*如何有什麼與此有關。如果你有一個字符串,並想查看字符串部分,使用*編程語言*來解析它。如果你在數據庫表中有這個字符串,那麼DBMS應該忽略它的部分和含義。另一方面,如果您希望數據庫中的字符串內容,則不要將其存儲爲字符串,而應將其存儲爲單獨的列。 –

回答

1

您正在尋找這一點。它給你你想要的結果

SELECT mycol, CONCAT('L.', mycol) AS newCol 
FROM(SELECT * FROM test WHERE mycol REGEXP 
'DATA_SOURCE_ID|LAST_MODIFIED_BY|LAST_MODIFIED_DATE|ATTRIBUTE[0-9]+') 
     as temp 

說明

SELECT * FROM test WHERE mycol REGEXP 
    'DATA_SOURCE_ID|LAST_MODIFIED_BY|LAST_MODIFIED_DATE|ATTRIBUTE[0-9]+') 

此發現,要麼有DATA_SOURCE_IDLAST_MODIFIED_BYLAST_MODIFIED_DATEATTRIBUTE後跟任意數量的

SELECT mycol, CONCAT('L.', mycol) AS newCol 

這增加了所有行L.添加到所有具有b的行een由子查詢找到。

輸出

L.DATA_SOURCE_ID, 
L.LAST_MODIFIED_BY, 
L.LAST_MODIFIED_DATE, 
L.ATTRIBUTE13, 
L.ATTRIBUTE14, 
L.ATTRIBUTE15, 
L.ATTRIBUTE16, 
L.ATTRIBUTE17, 
L.ATTRIBUTE18, 
L.ATTRIBUTE19, 
L.ATTRIBUTE20, 
L.ATTRIBUTE21, 
L.ATTRIBUTE22, 
L.ATTRIBUTE23, 
L.ATTRIBUTE24, 
L.ATTRIBUTE25, 
L.ATTRIBUTE26, 
L.ATTRIBUTE27, 
L.ATTRIBUTE28, 
L.ATTRIBUTE29, 
L.ATTRIBUTE30 

希望這有助於

+0

謝謝你的時間和幫助。我使用了一個類型和一個函數來填充它。 –

1

你可以嘗試這樣的:

replace(replace(myString, 'DATA_SOURCE_ID', 'yourReplaceValue1'), 'LAST_MODIFIED_BY', yourReplaceValu2)..... 

.....是爲您做出了類似的替換爲你替換字符串:)

+0

謝謝你的時間。 –

+0

@BurhanKhalidButt: - 不客氣! –

1

使用其餘嵌套更換

SQL> WITH data AS 
    2 (SELECT 'a,b,c' str FROM dual 
    3 ) 
    4 SELECT str, 
    5 REPLACE(REPLACE(REPLACE(str, 'a', 'x'), 'y'), 'z') new_str 
    6 FROM data; 

STR NEW_S 
----- ----- 
a,b,c x,b,c 
+0

謝謝你的時間。 –

+0

@BurhanKhalidButt不客氣。但是,請記住,您需要在數據庫之外執行這些冗餘任務。 –

+0

我無法在數據庫之外進行這些更改。正如前面的程序員說他很難做這樣的改變。但是,由你和其他成員的幫助'我能夠破解它:) –