在Oracle中的一张表中,同时存在 字段A varchar2(1000),字段 B varchar2(4000).为什么字段A的可以正常保存汉字,只要不超出长度的汉字均可以正常保存,但是字段B就不能够保存多个汉字,只能够保存一个汉字,或一个汉字和一堆的数字或字母,但是保存多个汉字的时候就出错,请高手帮忙。

解决方案 »

  1.   

    输出字节缓冲区太小,无法包含编码后的数据,编码“简体中文(GB2312)”的操作回退“System.Text.InternalEncoderBestFitFallback”。\r\n参数名: bytes"}
      

  2.   

    建表语句:
    CREATE TABLE tbRequirement(
    uRequirementID varchar2(100) NOT NULL,
            XDID varchar2(50) NOT NULL,
    vcRequirementName varchar2(100)  not NULL,
    vcRequirementAuthor varchar2(100)  NULL,
    vcRequirementAuthorName varchar2(100) NOT NULL,
    vcRequirementOwner varchar2(100) NULL,
    vcRequirementOwnerName varchar2(100) NULL,
    iRequirementPartment number  NULL,
    dtRequireTime date  NULL,
    iRequirementSource number NULL,
    vcReferProduct varchar2(1000) NULL,
    iRequirementState number NOT NULL,
    vcRequirementDescribe varchar2(4000) NOT NULL,
    vcCompetitorAnalyse varchar2(4000) NULL,
    vcRequirementResult varchar2(4000) NULL,
    vcBenefitAnalyse varchar2(4000) NULL,
    vcRequirementRe varchar2(4000) NULL,
            vcRequireAnswer varchar2(100)  NULL,
            VcRequireAnswerTime date  NULL)
    create sequence seq_tbr_t_client_id 
    minvalue 1
    maxvalue 99999999 
    start with 1
    increment by 1
    nocache
    order;
    CREATE OR REPLACE TRIGGER trg_tbr_client_id
    BEFORE INSERT ON tbRequirement
    FOR EACH ROW
    BEGIN
    SELECT   seq_pk_t_client_id.nextval INTO :new.uRequirementID FROM dual;
    END;提示的错误:
    输出字节缓冲区太小,无法包含编码后的数据,编码“简体中文(GB2312)”的操作回退“System.Text.InternalEncoderBestFitFallback”。\r\n参数名: bytes"}特殊说明: 在数据库中可以直接写入多个汉字,但是用程序保存的时候就会出错。VS2010