我想從user_tab_columns中使用.Net提取oracle列默認值。 它的數據類型很長,當我使用IDataReader讀取它時,我得到一個空字符串。我如何獲取數據?在.Net中選擇Oracle列的默認值
選擇列名,從USER_TAB_COLUMNS其中列名=「XXX」
我想從user_tab_columns中使用.Net提取oracle列默認值。 它的數據類型很長,當我使用IDataReader讀取它時,我得到一個空字符串。我如何獲取數據?在.Net中選擇Oracle列的默認值
選擇列名,從USER_TAB_COLUMNS其中列名=「XXX」
的LONG數據類型有很多關於其使用限制data_default。解決它的方法之一是建立一個存儲函數是這樣的:
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類型的字段len個數據
它爲我的作品;
只要我能再次找到時間,我會盡快檢查,謝謝 – Noam 2011-08-08 08:12:32
使用'dbCommand.InitialLONGFetchSize = -1'讀取整個列,而不管大小如何,請參閱:http://docs.oracle.com/cd/B19306_01 /win.102/b14307/featData.htm#i1007197 – 2013-06-17 19:52:23
我需要能夠在sql語句中工作的東西,因爲我沒有在該模式中創建函數的權限。 – Noam 2010-09-13 11:52:38