博客园站长
这是人类成长进步中记录的每一时刻

//访问Oracle的存储过程并获取返回结果

using (OracleConnection cn = new OracleConnection(ConnectionStringLocalTransaction))
{
OracleParameter[] parameters ={
new OracleParameter("p_table_name",OracleType.VarChar,40), //输入参数
new OracleParameter("p_succ",OracleType.VarChar,20) //输出参数,必须跟存储过程里的一样
};
parameters[0].Value = "Value"; //输入参数的值
parameters[0].Direction = ParameterDirection.Input; //设置为输入参数
parameters[1].Direction = ParameterDirection.Output; //设置为输出参数
string queryString = "processing"; //存储过程名
OracleCommand cmd = new OracleCommand(queryString, cn);  
cmd.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
cn.Open();
cmd.ExecuteNonQuery();
string ss = cmd.Parameters["p_succ"].Value.ToString();
cn.Close();
}

 

//注:也可以分离开来,将赋值完的参数  传递到 数据库访问层去    (string spname, string rtvaluename, params OracleParameter[] commandParameters)

 



//获取 字符串长度中文占2个 int s=System.Text.Encoding.GetEncoding("gb2312").GetByteCount(day.Trim());

 

//Oracle分页(每次只取区间,因为一般使用Oracle数据量肯定很大,所以不可能一次取出所有数据)

select * from (select rownum q,t.* from (select * from tb1) t) t2 where q between 1 and 15)

 

具体格式

SELECT * FROM 
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21

 

 

 

posted on 2011-11-21 08:45  dm3344  阅读(391)  评论(1编辑  收藏  举报