我需要获取oracle中某些表的分区信息
此查询:
select HIGH_VALUE from ALL_TAB_PARTITIONS WHERE TABLE_NAME = 'MyTable'
返回此结果:
但是在C#代码中,结果是一个带有4个空字符串项的字符串数组
const string query = "select HIGH_VALUE from ALL_TAB_PARTITIONS WHERE TABLE_NAME = 'MyTable'";
var infos = context
.Database
.SqlQuery<string>(query)
.ToArray();
为什么结果不同?
答案 0 :(得分:0)
请注意,HIGH_VALUE是LONG数据类型。您需要PL SQL来检索值并使用它:
DECLARE
v_high_value varchar2(32762);
BEGIN
select high_value into v_high_value
from all_tab_partitions where table_name = 'MyTable'
and rownum<=1;
DBMS_OUTPUT.put_line( 'first partition high value is :'||v_high_value);
END;
/
您可以编写一个进行转换的oracle函数,并在C#中使用它。