当前位置: 首页 > 面试题库 >

为什么我得到ORA-01401:插入值对于列而言太大-当我不插入时?

葛修永
2023-03-14
问题内容

这是一些用一个非常简单的表设置的SQL。

CREATE TABLE CC_TEST2 
  ("CURRENCYID" NUMBER NOT NULL ENABLE, 
"NAME" NVARCHAR2(255)) ;


insert into CC_TEST2 (select 1,'Testing issue'from dual);
commit;

然后,这会重现问题

    SELECT (step.Name ||
    'Commentary of 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890            1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
    1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 12')
 as thing  FROM CC_TEST2 step

有任何想法吗?

我认为nVarchar2有点奇怪吗?如果我将列类型更改为varChar2,则可以。可悲的是,我无法更改问题所在的实际生产数据库的列类型


问题答案:

如果将“ NAME” NVARCHAR2(255)更改为“ NAME”
VARCHAR2(255)(即通过使用varchar2),则不会有任何问题。您可以在http://sqlfiddle.com/#!4/cefd8/2上进行相同的测试




 类似资料:
  • 我创建了一个二叉查找树类。我创建了我的插入方法、高度方法和打印方法。当我插入时,一切看起来都很好。如果根为空,我创建一个新的根并设置该项目。但是当我调用我的高度方法时,它打印出2而不是1。当我调用print方法时,它会两次打印出包括root在内的所有元素。例如,我按以下顺序插入了以下元素:9, 5, 4, 55, 555 当我调用PREorderPRINT方法时,它会输出:9, 5, 4, 9,

  • 从Java插入时,插入速度约为每秒2500行。即使在我测量for循环之后和ExecuteBatch之前的时间时也是如此。因此“创建”内存中的数据并不是瓶颈。 使用批量插入进行插入时,插入速度约为每秒30000行。 这两个测试都是在服务器上完成的。所以网络也不是瓶颈。为什么批处理插入更快,有什么线索吗?如果在Java中也能获得同样的性能呢?

  • 我与Wildfly和OpenJPA合作。我有一个乐观锁例外的情况。 我得到的错误消息是: 00:08:29373警告[com.arjuna.ats.arjuna](默认任务-39)arjuna01225:TwoPhaseCoordinator。beforeCompletion-SynchronizationImple失败 :org.apache.openjpa.persistence.乐观锁定异常

  • 我在MySQL数据库中有一个表,其中包含一个默认值的列,在数据库端使用phpMyAdmin定义。当我使用HiberNate插入新行时,我得到这个错误: 通用域名格式。mysql。jdbc。例外。jdbc4。MySQLIntegrityConstraintViolationException:列“status”不能为null 我还需要做些什么来使用默认值吗? 实体

  • 问题内容: 我尝试在数据库中为类型为’date’的字段插入值null(DateTime),但始终会得到 ‘0001-01-01’ 。我不明白,该字段“允许为空”,我也不知道为什么要使用这个默认值。 我在MVC(实体框架)中使用C#asp .net,这是我的代码: Last_Modified_Date键入System.DateTime吗?所以我不知道他们为什么要改变这个“空”。 如果我尝试在我的应用

  • 问题内容: 我有这个专栏 但是当我插入类似的东西时,我得到了 应该在那里允许有10位数字,对不对? 如何正确执行此操作? 问题答案: Int具有最大值范围: 因此,由于溢出,您将获得最大值。使用bigint代替,它有8个字节,您会没事的。 http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html#integer- types