【问题标题】:ora-12899 error in sqlsql 中的 ora-12899 错误
【发布时间】:2016-09-15 15:39:21
【问题描述】:

我已经创建了一个表

SQL> DESC Customers


Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
 ACCT_ID                                   NOT NULL VARCHAR2(10)
 NAME                                      NOT NULL VARCHAR2(30)
 ZIP_CODE                                           CHAR(5)

我试图在表格中插入一行

INSERT INTO customers (acct_id, name, zip_code)
VALUES ('1234567890', '(Danelle)', '(20743)');

我收到此错误,我似乎无法修复它。

第 2 行出现错误: ORA-12899: 列 "CM420E08"."CUSTOMERS"."ZIP_CODE" 的值太大 (实际:7,最大:5)

我只输入 5 位数字,但它说我输入 7。有什么想法吗?

【问题讨论】:

  • 你真的应该练习你的计数技巧......左括号 + 5 个数字 + 右括号,用引号括起来,是 7 个字符。再试一次 - (12345)。你可能还想看看你是如何处理这个名字的,除非你的名字真的是(Danelle)(在这种情况下你在你的个人资料中拼错了)。

标签: sql oracle sqlplus


【解决方案1】:

仔细查看您的INSERT 声明:

INSERT INTO customers (acct_id, name, zip_code)
VALUES ('1234567890', '(Danelle)', '(20743)')

您实际上是在尝试输入字符串(20743),即用括号括起来的五位邮政编码。您应该插入20743,或者使ZIP_CODE 列宽7 个或更多字符。

【讨论】:

  • 非常感谢。我正在按照步骤完成家庭作业。我真的很感激
【解决方案2】:

您正在输入 7 个字符 - 您的 namezip_code 字符串似乎有一个“(”作为第一个字符,一个“)”作为第二个字符。你可能想要

INSERT INTO customers (acct_id, name, zip_code)
VALUES ('1234567890', 'Danelle', '20743');

【讨论】:

  • 感谢您的回复,成功了。我按照分步说明进行操作,看起来像用户错误。
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 2018-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多