我正在研究一個涉及評估車輛修改的應用程序,並從存儲在Oracle 10g數據庫中的數據中進行一些編號處理。不幸的是,我只有數據庫中的文本數據,但我需要使用數字而不是文本。我想知道是否有人可以幫助我理解如何使用PLSQL在Oracle 10g數據庫中對VARCHAR2列數據執行字符串操作:PLSQL修改VARCHAR2列數據
例如:我需要在名爲CARS的表中取一個名爲TOP_SPEED的VARCHAR2列,解析其列中的文本數據以將其分解爲兩個新值,並將這些新值插入到CARS表中的兩個新的NUMBER類型列中,即TOP_SPEED_KMH和TOP_SPEED_MPH。
TOP_SPEED列中的數據是這樣的:例如。 「153 km/h(94.62 mph)」
我想將值153.00保存到TOP_SPEED_KMH列,並將94.62值保存到TOP_SPEED_MPH列中。
我想我有一個查詢/腳本做的是這樣的:
- 選擇TOP_SPEED文本數據到本地文本變量
- 修改本地文本變量並保存新的值代入二號變量
- 寫回兩個數字變量對應TOP_SPEED_KMH和TOP_SPEED_MPH列
可能有人請確認我在正確的軌道上?如果有人有時間,我也會非常感謝任何示例代碼。
乾杯
這很好。端部的解決方案是: 'UPDATE CARS SET CAR_TOP_SPEED_KPH = TO_NUMBER(SUBSTR(CAR_TOP_SPEED,1,INSTR(UPPER(CAR_TOP_SPEED) KM/H')-1)), CAR_TOP_SPEED_MPH = TO_NUMBER(SUBSTR(REGEXP_SUBSTR( CAR_TOP_SPEED,'\([0-9] +'),2));' – fuzzyanalysis 2011-04-10 03:21:33