是不是该行记录太长
在buffer中不够装下尝试加大buffer targwjf% oerr exp 00001
00001, 00000, "data field truncation - column length=%lu, buffer size=%lu actua"
// *Cause:  Export could not fit a column in the data buffer.
// *Action: Record the given size parameters and the accompanying messages and
//          report this as an Export internal error to customer support. (Part
//          of the table has been exported. Export will continue with the next
//          table.)
stargwjf%

解决方案 »

  1.   

    there are 2 possibility of this problem:
    1. NLS Settings
    ----------------------
    This is the most common way in which to get these errors.You will probably hit this when:
    + Your database is created in a single byte characterset (for example 
      WE8ISO8859P1)
    + The NLS_LANG environment variable is set to UTF8 or a similar characterset 
    + You've stored extended ASCII characters (like accented French characters etc.) 
      or other characters that take more than 1 byte to store in UTF8.
    Solution 1
    ----------
    Set the characterset in NLS_LANG to a single byte characterset that is correct 
    for your platform. There is no reason why this shouldn't be possible.2. Invalid data size
    ---------------------------
    This is a less common reason for this error but occurrences have been seen.
    For some reason you could have data of incorrect size in a varchar2 column.You can test if you're running into this in the following way:
    + Find out the size of the offending column
    + CREATE TABLE cp_table (col1 <as the offending column>);
    + INSERT INTO cp_table SELECT <offending column> FROM <offending table>;In this case you will get ORA-01401: inserted value too large for columnSolution 2
    ----------
    We will have to store the data in columns that large enough to store the data.Examine the contents of this column in the main table by
    SELECT dump(<offending column>) FROM main_table.As a result you will find some values in this column, which are larger than the 
    defined size for this column.Find out the value with maximum length in the column. Create a new table of the 
    same specifications as the original table but make sure the offending column has
    got the correct size. Insert the rows from the original table into the copy.
      

  2.   

    不是记录太长的问题。这是ORDERS表出问题了,正常的情况导出是没有问题的。
      

  3.   

    有两种可能:
    1。NLS 设置 
        这是最有可能的一种
    +  你的数据库是单字节字符集的(例如:WE8ISO8859P1)+ NLS_LANG 环境变量设置为UTF8 或类似的字符集
    + You've stored extended ASCII characters (like accented French characters etc.) 
       
      or other characters that take more than 1 byte to store in UTF8.
      你已经存入了扩展ASCII字符(比如法语等)或其它超过1个字节的字符在UTF8中
    方法 1
    ----------
    NLS_LANG设置是正确的。没有理由去改变
    2. 无效的数据长度
    ---------------------------
    这种可能性比较底,但也曾发生过,因为某种原因,错误长度的数据插入了VARCHAR2 类型的COLOUMN你可以这样测试:
     +找出COLUMN的定义长度
    + CREATE TABLE cp_table (col1 <as the offending column>);
    + INSERT INTO cp_table SELECT <offending column> FROM <offending table>;如果你得到 ORA-01401: inserted value too large for column 
    那就证明错误存在。方法 2
    ----------
    We will have to store the data in columns that large enough to store the data.我们必须将数据存放到足够大的COLUMN中检查COLUMN中的内容:SELECT dump(<offending column>) FROM main_table.你可以找出一些数据大于COLUMN的定义长度找出最大的数据长度,建新表,把原来的COLUMN长度改成合适的,把数据从旧表倒入新表