如何在将数据从一个用户插入到另一个用户的同时使具有数据类型不匹配的列以及ORA-01722无效

时间:2017-11-10 12:53:43

标签: sql oracle

我在一个用户和另一个包含空记录的表中有一些记录。我想将该表的数据从一个 用户 迁移到 另一个 ,但我收到一个错误 ORA:01722 因为目标表的数据类型略有不匹配。如果不更改数据类型,我该怎么办才能解决此问题。 源表的数据类型是 -

Description of the source table

目标表的说明 -

Description of the target table

在不同用户的两个表中,只有一列是不匹配的数据类型 LOTFRONTAGE 。源表数据类型为 varchar2 ,目标表数据类型为数字。 如何使数据类型不匹配的列无效

我使用此SQL查询插入数据 -

insert into md.house(ID,MSSUBCLASS,MSZONING,
CAST(LOTFRONTAGE AS VARCHAR2(15)),LOTAREA,LOTSHAPE,LOTCONFIG,
NEIGHBORHOOD,CONDITION1,BLDGTYPE,OVERALLQUAL,
YEARBUILT,ROOFSTYLE,EXTERIOR1ST,MASVNRAREA)
select ID,MSSUBCLASS,MSZONING,LOTFRONTAGE,
LOTAREA,LOTSHAPE,LOTCONFIG,NEIGHBORHOOD,CONDITION1,
BLDGTYPE,OVERALLQUAL,YEARBUILT,ROOFSTYLE,
EXTERIOR1ST,MASVNRAREA from SYS.HOUSE_DATA;

然后我收到了错误

ORA-00917: comma missing

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

INSERT INTO 2ndTable  (ID,...,LOTFRONTAGE,....MASVNAREA)
       SELECT ID,...,to_number(LOTFRONTAGE),....MASVNAREA
       FROM 1stTable;