【发布时间】:2011-07-28 08:18:58
【问题描述】:
我正在尝试使用 .Net 从 user_tab_columns 中提取 oracle 列默认值。 它的数据类型很长,当我使用 IDataReader 读取它时,我得到一个空字符串。如何获取它的数据?
select column_name,data_default from user_tab_columns where column_name='XXX'
【问题讨论】:
我正在尝试使用 .Net 从 user_tab_columns 中提取 oracle 列默认值。 它的数据类型很长,当我使用 IDataReader 读取它时,我得到一个空字符串。如何获取它的数据?
select column_name,data_default from user_tab_columns where column_name='XXX'
【问题讨论】:
LONG 数据类型对其使用有很多限制。解决它的一种方法是构建一个这样的存储函数:
CREATE OR REPLACE FUNCTION column_default
( p_table VARCHAR2
, p_column
) RETURN VARCHAR2
IS
l_retval LONG;
BEGIN
SELECT data_default
INTO l_retval
FROM user_tab_columns
WHERE table_name = p_table
AND column_name = p_column;
RETURN l_retval;
END;
现在从 .Net 调用该函数,而不是直接执行查询。
【讨论】:
如果您使用的是 ODP.NET 驱动程序
试试这个
OracleCommand dbCommand = new OracleCommand();
dbCommand.InitialLONGFetchSize = 1000;
InitialLONGFetchSize 限制了 LONG 类型字段的数据长度
它对我有用;
【讨论】:
dbCommand.InitialLONGFetchSize = -1读取整列不分大小,见:docs.oracle.com/cd/B19306_01/win.102/b14307/…