无法在 CAST(SUBSTR(column,8,6) as number(6)) 之后插入 table

Can't insert into table after CAST(SUBSTR(column,8,6) as number(6))

我有一个 table,我将我的固定文件数据插入到单个 varchar2 列,并将其命名为 table tmp_table

CREATE TABLE "tmp_table" 
   (    "COLUMN1" VARCHAR2(256 BYTE)
   )

现在我正在尝试将数据从这个 tmp_table 转换并插入到最终 table 中,我使用 SUBSTR 函数

破坏数据

现在我创建了下一个 table,我将在其中插入这些列

CREATE TABLE "TABLE" 
   (
    "COLUMN A" VARCHAR2(4),
    "CODE" NUMBER(6,0), 
    "DATE_LOADED_TIMESTAMP" DATE
   )

现在我 运行 一个 select 查询来检查我是否可以从我的 tmp_table 中获取我想要插入到最终 TABLE[=24= 中的正确数据]

所以我运行查询

SELECT Cast(SUBSTR(COLUMN1,8,6)as number(6)) as Code
from TMP_TABLE;

我看到的结果很好,我想插入到 CODE 列。

现在我尝试运行最终查询:

insert into TABLE(CODE) 
SELECT Cast(SUBSTR(COLUMN1,8,6)as number(6)) as Code
from TMP_TABLE;

现在它给我错误

Error report -
ORA-01722: invalid number

为什么我无法将数字值插入 6 位数字列?

好的,我发现我在使用 SQL Developer 时发生了什么,下面的查询 运行 在我的工具中返回了一些结果,并且它显示的少数结果中没有字符字段。

SELECT Cast(SUBSTR(COLUMN1,8,6)as number(6)) as Code
from TMP_TABLE;

我运行下面的查询来搜索我正在查看的记录中是否有字符:

SELECT SUBSTR(COLUMN1,8,6)
from TMP_TABLE
where REGEXP_LIKE(SUBSTR(COLUMN1,8,6),'[A-Za-z]');

在这里我看到了角色,现在我知道不能盲目相信 SQL 开发人员 :)