2014-09-29 47 views
0

我正在使用log4j2來登錄數據庫。我的代碼在下面;log4j2登錄數據庫varchar2錯誤

<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:只能用於插入結合long值轉換爲一個LONG列錯誤。 Hovewer,我的「ACIKLAMA」列是varchar2(4000)。那麼,爲什麼我不能在我的「ACIKLAMA」列中插入1000到4000個字符;

錯誤代碼是:

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

感謝你的興趣,

+0

錯誤並不是說您的文本太長,而是您嘗試在非相同類型的列中插入LONG類型的值。你可以發佈更多的log4j日誌? – 2014-09-29 09:07:34

+0

當我試圖將超過1000個字符的字符傳遞給「ACIKLAMA」列時,我的數據庫列是varchar2(4000),但是當字符數增加超過1000時,會出現錯誤。 – EmreAltun 2014-09-29 10:49:38

+0

@EmreAltun請參閱http://www.dba-oracle.com/t_ora_01461_can_bind_a_long_value_only_for_insert_into_a_long_column.htm – 2014-09-29 12:58:25

回答

0

我找到我的問題的解決方案;通過將此代碼添加到我的log4j2.xml文件中,問題解決了。

isUnicode="false" 
0

在將log4j2條目插入我的數據庫後,發生同樣的錯誤。 我將超過1000個字符的列的數據類型從varchar2更改爲CLOB。之後它工作。 嘗試將您的ACIKLAMA列的數據類型更改爲CLOB

相關問題