无法在 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 开发人员 :)
我有一个 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 开发人员 :)