.net访问Oracle函数,并显示返回值:
1 表结构(SysFunction)
功能编号 CHAR(8)
功能名称 VARCHAR2(30)
上级功能编号 CHAR(8)
标志 CHAR(1)
select * from infomanager.sysfunction
1 1 系统功能 0 0
2 2 客户中心 1 0
3 3 潜在客户 2 0
4 4 现在客户 2 1
5 5 历史客户 2 1
6 6 报表中心 1 1
7 7 总公司报表 6 1
8 8 中化工报表 7 1
2 创建函数:
CREATE OR REPLACE FUNCTION GET_SYSFUNCTION_NAME (
func_id char
)
RETURN VARCHAR2
IS func_name VARCHAR2(25);
BEGIN
SELECT 功能名称 INTO func_name FROM infomanager.sysfunction
WHERE 功能编号 = func_id;
RETURN func_name;
END GET_SYSFUNCTION_NAME;
3: asp.net下的测试代码。
页面显示: 系统功能 。
测试通过:
注:ORA-01036: 非法的变量名/编号
错误原因可能是你使用的不是正确的CommandType类型。
1 表结构(SysFunction)
功能编号 CHAR(8)
功能名称 VARCHAR2(30)
上级功能编号 CHAR(8)
标志 CHAR(1)
select * from infomanager.sysfunction
1 1 系统功能 0 0
2 2 客户中心 1 0
3 3 潜在客户 2 0
4 4 现在客户 2 1
5 5 历史客户 2 1
6 6 报表中心 1 1
7 7 总公司报表 6 1
8 8 中化工报表 7 1
2 创建函数:
CREATE OR REPLACE FUNCTION GET_SYSFUNCTION_NAME (
func_id char
)
RETURN VARCHAR2
IS func_name VARCHAR2(25);
BEGIN
SELECT 功能名称 INTO func_name FROM infomanager.sysfunction
WHERE 功能编号 = func_id;
RETURN func_name;
END GET_SYSFUNCTION_NAME;
3: asp.net下的测试代码。
using
System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
using HHSCInfor.App_Code.Database;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["DBConnStr"]);
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "GET_SYSFUNCTION_NAME";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("func_id", OracleType.NVarChar).Value = 1;
cmd.Parameters.Add("func_name", OracleType.NVarChar, 25).Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Label1.Text = cmd.Parameters["func_name"].Value.ToString();
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
using HHSCInfor.App_Code.Database;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["DBConnStr"]);
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "GET_SYSFUNCTION_NAME";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("func_id", OracleType.NVarChar).Value = 1;
cmd.Parameters.Add("func_name", OracleType.NVarChar, 25).Direction = ParameterDirection.ReturnValue;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Label1.Text = cmd.Parameters["func_name"].Value.ToString();
}
}
页面显示: 系统功能 。
测试通过:
注:ORA-01036: 非法的变量名/编号
错误原因可能是你使用的不是正确的CommandType类型。