Oracle Long类型数据转换varchar
之前即时通讯项目中消息字段是Long类型,通过查找相关资料写的一个函数。
CREATE OR REPLACE FUNCTION LONG_TO_CHAR(in_rowid rowid, --rowid
in_owner varchar, --所有者 可空
in_table_name varchar, --表名
in_column varchar2 --要查询的列名
) RETURN varchar AS
text_c1 varchar2(32767);
sql_cur varchar2(2000);
begin
if length(in_owner) > 0 then
sql_cur := 'select ' || in_column || ' from ' || in_owner || '.' ||
in_table_name || ' where rowid = ' || chr(39) || in_rowid ||
chr(39);
else
sql_cur := 'select ' || in_column || ' from ' || in_table_name ||
' where rowid =' || chr(39) || in_rowid || chr(39);
end if;
dbms_output.put_line(sql_cur);
execute immediate sql_cur
into text_c1;
text_c1 := substr(text_c1, 1, 4000);
RETURN TEXT_C1;
END;
用例:select b.remark,LONG_TO_CHAR(b.rowid, null, text , 'remark')from text b;