【问题标题】:R RJDBC oracle dbWritetable, value too large for column maximum: 255R RJDBC oracle dbWritetable,值对于列最大值太大:255
【发布时间】:2015-05-19 06:41:18
【问题描述】:

我的数据框的一列包含文本,字符超过 255,当我使用 dbWritetable 到 oracle 时,我得到了这个错误:

    Error in .local(conn, statement, ...) : 
    execute JDBC update query failed in dbSendUpdate (ORA-12899: value too large for column "DWTEST"."PCP_DOCS"."WORDS" (actual: 341, maximum: 255)
    )

有人可以帮忙吗? 在此先感谢

【问题讨论】:

  • 能否发布您发布的更新查询?

标签: r oracle rjdbc


【解决方案1】:

该列只能接受 255 个字符。你正试图用 341 个字符填充它。因此,错误。

【讨论】:

  • dbWriteTable(jdbcConnection, "temp", pcp_cust1) ,pcp_cust1 超过了能力,我该如何解决它,或任何解决方案?谢谢@shruti1810
  • 在 pcp_cust1 中,请检查为抛出错误的列输入的值。请减少列内容。或者,在数据库中,将列大小增加到>341 以防止列抛出错误。
【解决方案2】:

ORA-12899:列“DWTEST”.“PCP_DOCS”.“WORDS”的值太大(实际:341,最大值:255)

错误表示表PCP_DOCS 中的列WORDS 是使用最大限制 255 个字符创建的。您正在尝试使用 超过 255 个字符(即 341 个字符)的值更新列,因此更新失败。

假设列数据类型为VARCHAR2,您可以修改列以增加大小

ALTER TABLE pcp_docs MODIFY (words VARCHAR2(500));

例如,

SQL> create table t(col varchar2(2));

Table created.

SQL>
SQL> insert into t values('abc');
insert into t values('abc')
                     *
ERROR at line 1:
ORA-12899: value too large for column "LALIT"."T"."COL" (actual: 3, maximum: 2)


SQL>
SQL> alter table t modify(col varchar2(10));

Table altered.

SQL>
SQL> insert into t values('abc');

1 row created.

SQL>

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多