我遇到了这样的情况:基于'‘on number列的insert很好,而case语句提供了不同的错误。“不一致的数据类型:预期%s获得%s”
我已经看过了这里给出的一些解释(ORA-00932不一致数据类型预期字符获得编号 )和Oracle情况时ORA-00932:不一致的数据类型:预期CHAR得到编号00932。00000 -“不一致的数据类型:预期%s获得%s”,我知道我需要不用引号来使用它,但是我想了解case语句的行为。SQL server的行为不是这样的,而是为什么只有oracle。此oracle默认行为是否带有case语句。
如果我创建和插入值,我可以做到这一点,没有任何错误。
create table testtbl (name varchar2(50), id number(10,2));
insert into testtbl values ('abc', '123');
insert into testtbl values ('test', '200'); 当我试图使用case语句更新列时,我得到了这个错误。我可以使用to_number或删除引号来避免这个错误,但我想了解为什么在use语句中给出的列本身是number时,引号会发生。Oracle中不存在隐式转换吗?
update testtbl
set id = case when name = 'abc' then '5000' else id end;https://stackoverflow.com/questions/60220000
复制相似问题