当前位置: 代码迷 >> Oracle开发 >> .net读不出oracle系统表的long字段内容!该怎么处理
  详细解决方案

.net读不出oracle系统表的long字段内容!该怎么处理

热度:123   发布时间:2016-04-24 07:51:29.0
.net读不出oracle系统表的long字段内容!
我要从系统表读字段的默认值,sys.col$记录了这些内容,其中的default$字段是long类型,记录了默认值。
中但是vb.net把表读到dataset后,再访问该字段,得到空字符串!
vs.2003和vs.2005都是这样,说明不是.net的问题;
我的电脑和同事的电脑都这样,说明不是oracle客户端的问题,而且PL/SQL   Developer中可以读到。
但是我自己定义的表,当中的long字段,却可以读出正确内容。
---------------------------------------
快疯了,帮帮忙,有没有人遇到这个情况?

------解决方案--------------------
用存储过程吧
------解决方案--------------------
是否权限问题,别的字段可以吗?
------解决方案--------------------
用byte试一试
------解决方案--------------------
我也遇到了这个问题,真不知道怎么解决呀
------解决方案--------------------
SQL code
LONG to VARCHAR2 FunctionCREATE OR REPLACE FUNCTION LONG_TO_CHAR( in_rowid rowid,in_ownervarchar,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;/
------解决方案--------------------
支持搂主,收藏
  相关解决方案