我要从系统表读字段的默认值,sys.col$记录了这些内容,其中的default$字段是long类型,记录了默认值。
中但是vb.net把表读到dataset后,再访问该字段,得到空字符串!
vs.2003和vs.2005都是这样,说明不是.net的问题;
我的电脑和同事的电脑都这样,说明不是oracle客户端的问题,而且PL/SQL Developer中可以读到。
但是我自己定义的表,当中的long字段,却可以读出正确内容。
---------------------------------------
快疯了,帮帮忙,有没有人遇到这个情况?
中但是vb.net把表读到dataset后,再访问该字段,得到空字符串!
vs.2003和vs.2005都是这样,说明不是.net的问题;
我的电脑和同事的电脑都这样,说明不是oracle客户端的问题,而且PL/SQL Developer中可以读到。
但是我自己定义的表,当中的long字段,却可以读出正确内容。
---------------------------------------
快疯了,帮帮忙,有没有人遇到这个情况?
CREATE OR REPLACE FUNCTION LONG_TO_CHAR( in_rowid rowid,in_owner
varchar,in_table_name varchar,in_column varchar2)
RETURN varchar AS
/*
CREATE BY: D.Jenkins
Date: 28-Apr02003 Use: Long to varchar2 conversion,
to allow a substring on long column in the table;
Notes:
Errors out with varchar > 32767
ORA-06502: PL/SQL: numeric or value error: character string
buffer too small Synonyms and Grants:
create public synonym LONG_TO_CHAR for
synergen.CDBF_LONG_TO_CHAR;
grant execute as required
or
grant execute long_to_char to public;
*/text_c1 varchar2(32767);
sql_cur varchar2(2000);
--
begin
sql_cur := 'select '||in_column||' from
'||in_owner||'.'||in_table_name||' where rowid =
'||chr(39)||in_rowid||chr(39);
dbms_output.put_line (sql_cur);
execute immediate sql_cur into text_c1; text_c1 := substr(text_c1, 1, 4000);
RETURN TEXT_C1;
END;
/