首页  ·  知识 ·  编程语言
net访问Oracle数据库访问Oracle包
佚名  本站原创  .NET  编辑:dezai  图片来源:网络
先在数据库中建立一个包,包内包括一个hello world的函数和一个返回结果集的存储过程: 包头: create or replace package test_netis<

先在数据库中建立一个包,包内包括一个hello world的函数和一个返回结果集的存储过程:

包头:

create or replace package test_net
is
type t_table is ref cursor;
procedure p_serach(mycs out t_table);
function f_count(str in varchar2)
return varchar2;
end;

然后创建包体:

CREATE OR REPLACE package BODY test_net
is
procedure p_serach(mycs out t_table)
is
begin
open mycs for select * from table_test;
end p_serach;

function f_count(str varchar2)
return varchar2
is
str_temp varchar2(100) := 'hello ';
begin
str_temp := str_temp || str;
return str_temp;
end f_count;

end test_net;

这样包就建立成功。下面就是再c#程序中对其进行调用,

调用包内函数:

        string oracle_conn = "User ID=user; Password=password; Data Source=server";

        using (OracleConnection conn = new OracleConnection(oracle_conn))
        {
            conn.Open();
            OracleCommand com = new OracleCommand("test_net.f_count", conn);//调用包
            com.CommandType = CommandType.StoredProcedure;

            //输入参数
            OracleParameter p_input = new OracleParameter("str", OracleType.VarChar, 10);
            p_input.Direction = System.Data.ParameterDirection.Input;
            p_input.Value = "function";

            //返回参数

            OracleParameter p_output = new OracleParameter("result", OracleType.VarChar, 100);
            p_output.Direction = System.Data.ParameterDirection.ReturnValue;
            com.Parameters.Add(p_input);
            com.Parameters.Add(p_output);
            com.ExecuteNonQuery();
            conn.Close();
            Response.Write(p_output.Value.ToString());
        }

调用包内过程:

        string oracle_conn = "User ID=user; Password=password; Data Source=server";

        using (OracleConnection conn = new OracleConnection(oracle_conn))
        {
            conn.Open();
            OracleCommand com = new OracleCommand("test_net.p_serach", conn);
            com.CommandType = CommandType.StoredProcedure;
            OracleParameter p_input = new OracleParameter("mycs", OracleType.Cursor);
            p_input.Direction = System.Data.ParameterDirection.Output;

            com.Parameters.Add(p_input);
            OracleDataAdapter da = new OracleDataAdapter(com);
            DataSet ds = new DataSet();
            da.Fill(ds, "test");

            conn.Close();
        }

本文作者:佚名 来源:本站原创
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读