我正在研究一个涉及评估车辆修改的应用程序,并从存储在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