让我说我有这个表,varchar列包含以下值:
| column1 |
|-----------|
| (2, 7) |
| (2.24, 5) |
| (0, 43.5) |
我希望能够从column1中获取这些值并将它们插入到具有的表中 两个数字列(将子串转换为数字);到目前为止,我已经完成了以下工作:
SELECT REGEXP_SUBSTR(PtsString.column1, '[^( ,]+', 1, 1) col_one,
REGEXP_SUBSTR(PtsString.column1, '[^ )]+', 1, 2) col_two
FROM PuntosString;
它给了我这个输出:
| PT_ONE | PT_TWO |
|---------|---------|
| 2 | 7 |
| 2.24 | 5 |
| 0 | 43.5 |
我想创建一个函数,从pt_one
和pt_two
中提取这些子字符串,将它们转换为数字并将它们插入表NumPts (p1 number, p2 number)
;
你会建议我解决这个问题?
解决
所以在鹰派推荐之后,我做了以下工作,能够将字符串转换为数字并将它们插入NumPts表中
INSERT INTO NumPts(p1,p2)
SELECT
(TO_NUMBER(REGEXP_SUBSTR(PtsString.column1, '[^( ,]+', 1, 1))),
(TO_NUMBER(REGEXP_SUBSTR(PtsString.column1, '[^ )]+', 1, 2)))
FROM PtsString;
答案 0 :(得分:0)
您是否尝试过TO_NUMBER功能:
SELECT TO_NUMBER(REGEXP_SUBSTR(PtsString.column1, '[^( ,]+', 1, 1)) col_one,
TO_NUMBER(REGEXP_SUBSTR(PtsString.column1, '[^ )]+', 1, 2)) col_two
FROM PuntosString;