java - log4j2记录数据库varchar2错误

标签 java oracle log4j log4j2

我正在使用log4j2来记录数据库。我的代码如下;

<JDBC name="databaseAppender" tableName="KRITIK_KISISEL_BILGI_LOG" bufferSize="1">
    <DataSource jndiName="jdbc/hope" />
    <Column name="ID" literal="SEQ_KRITIK_KISISEL_BILGI_LOG.nextval" />
    <Column name="KULLANICI_ID" pattern="%X{kkb_userid}" />
    <Column name="KULLANICI_IP" pattern="%X{kkb_userip}" />
    <Column name="ISLEM_TARIHI" literal="TRUNC(sysdate)" />
    <Column name="ISLEM_AKIS_YOLU" pattern="%m" />
    <Column name="ACIKLAMA" pattern="%X{kkb_kriter}" isClob="false"/>
    <Column name="VERSIYON" literal="0" />
    <Column name="TANITIM_ZAMANI" isEventTimestamp="true" />
    <Column name="TANITAN_KULLANICI_ID" pattern="%X{kkb_tanitanUserid}" />
    <Column name="LOG_TIPI_ID" pattern="%X{kkb_logTipi}" />
    <Column name="KULLANICI_KODU" pattern="%X{kkb_kullaniciKodu}" />
    <Column name="SUNUCU_ADI" pattern="%X{kkb_serverName}" />
</JDBC>

但是当我向“ACIKLAMA”列传递超过 1000 个字符时,我收到 ORA-01461: can bind a LONG value only for insert into a LONG column 错误。然而,我的“ACIKLAMA”列是 varchar2(4000)。那么,为什么我不能在“ACIKLAMA”列中插入 1000 到 4000 个字符;

错误代码是:

ORA-01461: can bind a LONG value only for insert into a LONG column 

感谢您的关注,

最佳答案

在将 log4j2 条目插入数据库后,我遇到了同样的错误。 我将插入超过 1000 个字符的列的数据类型从 varchar2 更改为 CLOB。后来就成功了。 尝试将 ACIKLAMA 列的数据类型更改为 CLOB

关于java - log4j2记录数据库varchar2错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096173/

相关文章:

java - 在 RabbitMQ BasicPublish 期间避免数据复制

oracle - pl/sql中数字的阶乘

hadoop - 如何更改 hadoop 中 map reduce 函数的 log4j 级别

java - log4j 属性错误

Java实体表模型

java - 给定一个 Class<?>,我可以确定它是否是特定类型的子类吗?

sql - 如何在sqlplus中定义名为 "1"的绑定(bind)变量

sql - 如何从事务事实表生成时间点快照表?

Log4j:带有MaxFileSize选项的DailyRollingFileAppender

java - 应用程序在请求位置许可后立即崩溃