2017-06-02 249 views
0

我有一个字符串'Q1-96'将字符串转换为数字

我想在这种情况下获取季度数字,即1。我已经使用to_number(substr('Q1-96',2,1),'9')

我想将此值插入数据类型为NUMBER的列中。

但为我所用to_number(substr('Q1-96',2,1),'9')我得到以下错误:

SQL Error: ORA-01722: invalid number 
01722. 00000 - "invalid number" 
*Cause: The specified number was invalid. 
*Action: Specify a valid number. 

有没有办法做到这一点。

+1

它应该工作,即使没有to_number只是通过使用substr('Q1-96',2,1)。你的插入语句在整体中看起来像什么?你确定这是产生错误的值吗? – Rene

+0

请向我们展示**完整的**插入语句(** [编辑] **您的问题 - 请不要**发布代码或注释中的其他信息) –

+0

大家好!对不起,这个问题。正如我检查,在一个领域的数据是'APR-16'这是造成这个问题。你们都是对的。不使用to_number数据应该插入。 – joe

回答

0

为什么你甚至需要使用to_number

SQL> insert into tbl1 select substr('Q1-96',2,1) from dual; 

SQL> select * from tbl1; 

    NUM 
    ----- 
    1 
+0

感谢您的回复!这是我的错误。这实际上是一些领域的数据问题。 – joe