暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ORA-01722-在VARCHAR2列中插入VARCHAR2

ASKTOM 2020-05-14
759

问题描述

嗨,汤姆!

我有这张表:
COLUMN_NAME     DATA_TYPE        DATA_LENGTH
COER_DT          DATE            7
COER_SESSION     VARCHAR2         30
COER_COPA_SQ     NUMBER         22
COER_LOGIN     VARCHAR2         60


当我尝试插入:

INSERT INTO tmp_conta_erro (coer_dt, coer_session,   coer_copa_sq, coer_login) VALUES (TRUNC (SYSDATE),  'A',  7693605,  'TEST');


我收到这个错误: ora-17222无效的号码。

如果我尝试这种方式:
INSERT INTO tmp_conta_erro (coer_dt, coer_session,   coer_copa_sq, coer_login) VALUES (TRUNC (SYSDATE),  '1',  7693605,  'TEST');


插入成功完成。
我唯一更改的是coer_session中的值。而且我不知道为什么我不能插入char,因为它是VARCHAR2列。

我查询了表中的值,它们都是 “数字”,没有任何字符。
如果我查询像:
select * from tmp_conta_erro where coer_session = '1'

,带/不带引号,我没有收到任何错误。

提前谢谢。



专家解答

检查是否

a) 表上有一个触发器
b) 您在表上有一个基于索引的函数

其中任何一个都可以在其中尝试以某种方式将您的值转换为数字的代码。

如果这不是原因,我们需要查看表的DDL和问题的完整从上到下的示例,以便我们可以在此处进行复制。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论