Oracle中BOUNDFILLER字段的SQL * Loader错误?

时间:2017-11-09 14:45:49

标签: oracle sql-loader

我正在尝试将行解析为控制文件中的列。

我得到“数据文件中的字段超过最大长度”

我的控制文件:

Movie{
    @ManyToMany(mappedBy = "movies", cascade={CascadeType.ALL})
    private Set<User> users;    
    public Set<User> getUsers() {
        return users;
    }
}

User {
    @ManyToMany
    @JoinTable(name = "user_movie",
        joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
        inverseJoinColumns = @JoinColumn(name = "movie_id", referencedColumnName = "id")
    )
    private Set<Movie> movies; 
}

表:

OPTIONS (
ERRORS = 1,
DIRECT=TRUE,
LOAD=10
)
load data
APPEND
into table table_1
fields terminated by "#x000A"
(
Column0 BOUNDFILLER,
Column1 "SUBSTR(:Column0, 1, 10)"
)

看起来它发生了,因为每行的长度超过2000但是我检查了文件并且它少于1000。

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:2)

错误在这里。 Column0 BOUNDFILLER,此行等于Column0 BOUNDFILLER char(255),

char(255)是默认值。

你试图将1000放入变量,空间仅为255 解决方案是Column0 BOUNDFILLER char(2000) ,