哪位大哥有代码的请给我一份,我现在把我的oracle包里的内容发给大家: 下面是包的主题: create or replace package PKG_TEST is -- Author : ADMINISTRATOR -- Created : 2008-4-15 15:12:20 -- Purpose : 该包主要为了测试对象 type GenCurType is ref cursor;
----------------------------------------- --功能:该存储过程主要是为了添加测试表中对象 --参数:v2Name-名称 --作者: --时间:2007-4-15 PROCEDURE TTEST_INSERT(v2Name in varchar2);
--根据编号删除该条记录 FUNCTION TTest_Delete(numID in number) return varchar2;
--根据编号修改该条记录 FUNCTION TTest_Update(numID in number,v2Name in varchar2) return varchar2; FUNCTION TTest_Select(v2Name in varchar2,Re_CURSOR OUT GenCurType) return varchar2;end PKG_TEST;接下来是包里面方法的具体执行语句: create or replace package body PKG_TEST is ----------------------------------------- --功能:该存储过程主要是为了添加测试表中对象 --参数:v2Name-名称 --作者: --时间:2007-4-15 PROCEDURE TTEST_INSERT(v2Name in varchar2) IS BEGIN insert into ttest (id, name) values (seq_test.nextval, v2Name); commit; END TTEST_INSERT; --根据编号删除该条记录 FUNCTION TTest_Delete(numID in number) return varchar2 IS BEGIN DELETE FROM ttest WHERE id = numID; commit; RETURN 'OK'; EXCEPTION WHEN OTHERS THEN RETURN SQLERRM; END TTest_Delete;
--根据编号修改该条记录 FUNCTION TTest_Update(numID in number,v2Name in varchar2) return varchar2 IS BEGIN UPDATE ttest SET name=v2Name WHERE id = numID; commit; RETURN 'OK'; EXCEPTION WHEN OTHERS THEN RETURN SQLERRM; END TTest_Update;
FUNCTION TTest_Select(v2Name in varchar2,Re_CURSOR OUT GenCurType) return varchar2 IS V_CURSOR GenCurType; BEGIN if trim(v2Name) is null then return '参数为空'; end if; --open cv_emp;
if not V_CURSOR%isopen then open V_CURSOR for SELECT ID,name FROM ttest WHERE name like '%''' + v2Name + '''%'; Re_CURSOR := V_CURSOR; return 'OK'; end if; close V_CURSOR; EXCEPTION WHEN OTHERS THEN RETURN SQLERRM; END TTest_Select; end PKG_TEST;
下面是包的主题:
create or replace package PKG_TEST is -- Author : ADMINISTRATOR
-- Created : 2008-4-15 15:12:20
-- Purpose : 该包主要为了测试对象
type GenCurType is ref cursor;
-----------------------------------------
--功能:该存储过程主要是为了添加测试表中对象
--参数:v2Name-名称
--作者:
--时间:2007-4-15
PROCEDURE TTEST_INSERT(v2Name in varchar2);
--根据编号删除该条记录
FUNCTION TTest_Delete(numID in number) return varchar2;
--根据编号修改该条记录
FUNCTION TTest_Update(numID in number,v2Name in varchar2) return varchar2; FUNCTION TTest_Select(v2Name in varchar2,Re_CURSOR OUT GenCurType) return varchar2;end PKG_TEST;接下来是包里面方法的具体执行语句:
create or replace package body PKG_TEST is -----------------------------------------
--功能:该存储过程主要是为了添加测试表中对象
--参数:v2Name-名称
--作者:
--时间:2007-4-15
PROCEDURE TTEST_INSERT(v2Name in varchar2) IS
BEGIN
insert into ttest
(id, name)
values
(seq_test.nextval, v2Name);
commit;
END TTEST_INSERT;
--根据编号删除该条记录
FUNCTION TTest_Delete(numID in number) return varchar2 IS
BEGIN
DELETE FROM ttest WHERE id = numID;
commit;
RETURN 'OK';
EXCEPTION
WHEN OTHERS THEN
RETURN SQLERRM;
END TTest_Delete;
--根据编号修改该条记录
FUNCTION TTest_Update(numID in number,v2Name in varchar2) return varchar2 IS
BEGIN
UPDATE ttest SET name=v2Name WHERE id = numID;
commit;
RETURN 'OK';
EXCEPTION
WHEN OTHERS THEN
RETURN SQLERRM;
END TTest_Update;
FUNCTION TTest_Select(v2Name in varchar2,Re_CURSOR OUT GenCurType) return varchar2 IS
V_CURSOR GenCurType;
BEGIN
if trim(v2Name) is null then
return '参数为空';
end if;
--open cv_emp;
if not V_CURSOR%isopen then
open V_CURSOR for SELECT ID,name FROM ttest
WHERE name like '%''' + v2Name + '''%';
Re_CURSOR := V_CURSOR;
return 'OK';
end if;
close V_CURSOR;
EXCEPTION
WHEN OTHERS THEN
RETURN SQLERRM;
END TTest_Select;
end PKG_TEST;
public void Test_Delete(TestInfo tInfo, out string userErrMsg)
{
--数据库连接以及参数命令
OracleCommandWrapper command = TestDataBase.GetStoredProcCommandWrapper("pkg_TTest.TTest_Delete") as OracleCommandWrapper; --参数
object testID = null;
if (tInfo.TestID.ToString() != string.Empty)
{
testID = tInfo.TestID;
}
command.AddInParameter("numID", DbType.Int32, testID); command.AddOutParameter("result", DbType.String, 100); //执行更新语句,如果try中执行出现异常将会抛出异常信息
try
{
TestDataBase.ExecuteNonQuery(command);
userErrMsg = command.GetParameterValue("result").ToString();
//return 1;
}
catch (OracleException e)
{
userErrMsg = "失败," + e.Message;
//throw new Exception(e.Message);
}
}大致都是一样的,可是现在老是报同一个错误:
ORA-06550: 第 1 行, 第 7 列: PLS-00201: 必须声明标识符 'PKG_TTEST.TTEST_DELETE' ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored 可是我的方法在数据库执行完全没有问题啊!我郁闷啊!