FUNCTION raw2varchar2(p_raw IN RAW,
p_cset_f IN VARCHAR2 DEFAULT NULL,
p_cset_t IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS
l_buf_cset_f VARCHAR2(32000);
l_buf_cset_t VARCHAR2(32000);
l_return_status VARCHAR2(1);
l_msg_count NUMBER;
l_msg_data VARCHAR2(4000);
BEGIN
l_buf_cset_f := utl_raw.cast_to_varchar2(p_raw);
heb_log.put_line('default charset, l_buf_cset_f lenb:' || lengthb(l_buf_cset_f));
heb_log.put_line(l_buf_cset_f);
IF p_cset_f IS NOT NULL
AND p_cset_t IS NOT NULL THEN
l_buf_cset_t := convert(l_buf_cset_f,
p_cset_t,
p_cset_f);
heb_char_set_pub.check_convert(p_init_msg_list => fnd_api.g_false,
p_commit => fnd_api.g_false,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_cset_f => p_cset_f,
p_cset_t => p_cset_t,
p_len_f => length(l_buf_cset_f),
p_lenb_f => lengthb(l_buf_cset_f),
p_len_t => length(l_buf_cset_t),
p_lenb_t => lengthb(l_buf_cset_t));
heb_pub.raise_error(l_return_status);
END IF;
RETURN nvl(l_buf_cset_t,
l_buf_cset_f);
END raw2varchar2;