小弟刚接触oracle,请大家指点一下我在oracle写的Functioncreate or replace function F_FUNCTION2(usercode varchar2(20))
return sys_refcursor as
v_all sys_refcursor;
begin
open v_all for
select * from userinfo t where t.usercode=usercode
end;
----主要是带一个参数的在C#中调用,此函数 OracleCommand cmd = new OracleCommand("F_FUNCTION2", conn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter p1 = new OracleParameter("usercode", OracleType.VarChar, 20);
p1.Direction = System.Data.ParameterDirection.Input;
p1.Value = uscode;
cmd.Parameters.Add(p1);
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = cmd; DataTable dt = new DataTable();
oda.Fill(dt);
return dt;当编译运行时,报错: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'F_FUNCTION2'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored我在网上也找了些,但都没解决掉,请高手指点
return sys_refcursor as
v_all sys_refcursor;
begin
open v_all for
select * from userinfo t where t.usercode=usercode
end;
----主要是带一个参数的在C#中调用,此函数 OracleCommand cmd = new OracleCommand("F_FUNCTION2", conn);
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter p1 = new OracleParameter("usercode", OracleType.VarChar, 20);
p1.Direction = System.Data.ParameterDirection.Input;
p1.Value = uscode;
cmd.Parameters.Add(p1);
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = cmd; DataTable dt = new DataTable();
oda.Fill(dt);
return dt;当编译运行时,报错: ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'F_FUNCTION2'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored我在网上也找了些,但都没解决掉,请高手指点
SELECT F_FUNCTION2(usercode) FROM DUAL; 然后就和执行查询语句一样处理就可以了。不用像执行存储过程那样。
你好,我的oracle中的函数,上面有红色的叉叉,我按照你的方法有点进步了,但还是不能正常跑起来,是不是因为那红色的叉叉?错误:标识符无效
create or replace function F_FUNCTION2(usercode varchar2(20))
return sys_refcursor as
v_all sys_refcursor;
begin
open v_all for
select * from userinfo t where t.usercode=usercode;/*这加个分号试试*/
return v_all ;/*这加一句*/
end;