我建了个包 执行也成功了 但就是在包里面 找不到?郁闷
create or replace package body Message is PROCEDURE P_REFER(P_t1 IN TEST_01.t1%TYPE DEFAULT NULL,
P_t2 IN TEST_01.t2%TYPE DEFAULT NULL,
P_t3 IN TEST_01.t3%TYPE DEFAULT NULL,
P_CUR OUT V_CUR) IS
p_temp varchar(20);
BEGIN
if P_t2 is null then
p_temp := ' ';
else
p_temp := p_t2;
end if;
OPEN P_CUR FOR
SELECT t1, t2, t3, t4, t5, t6
FROM TEST_01
where t1 = P_t1
and nvl(t2, ' ') = p_temp
and t3 = p_t3;
END P_REFER; PROCEDURE P_MODIFY(ITYPE IN VARCHAR2 DEFAULT NULL,
p_t1 IN VARCHAR2,
p_t2 IN VARCHAR2,
p_t3 IN VARCHAR2,
p_t4 IN VARCHAR2,
p_t5 IN VARCHAR2,
p_t6 IN VARCHAR2,
P_CODE OUT NUMBER,
P_RTN_MSG OUT VARCHAR2) IS
BEGIN
P_code := 0;
IF iType = 'I' THEN
GOTO P_INSERT;
ELSif iType = 'U' then
GOTO P_UPDATE;
else
GOTO P_DELETE;
END IF;
<<P_INSERT>>
insert into test_01 values (p_t1, p_t2, p_t3, p_t4, p_t5, p_t6);
RETURN;
<<P_UPDATE>>
update test_01
set t2 = p_t2, t3 = p_t3, t4 = p_t4, t5 = p_t5, t6 = p_t6
where t1 = p_t1;
RETURN;
<<P_DELETE>>
delete from test_01 where t1 = p_t1;
RETURN;
EXCEPTION
WHEN NO_DATA_FOUND THEN
P_CODE := 1;
P_RTN_MSG := 'Testt P_MODIFY ERROR';
RETURN;
WHEN DUP_VAL_ON_INDEX THEN
P_CODE := 1;
P_RTN_MSG := 'DUP_VAL_ON_INDEX';
RETURN;
WHEN OTHERS THEN
P_CODE := 1;
P_RTN_MSG := SQLERRM;
END P_MODIFY;
end Message;
create or replace package body Message is PROCEDURE P_REFER(P_t1 IN TEST_01.t1%TYPE DEFAULT NULL,
P_t2 IN TEST_01.t2%TYPE DEFAULT NULL,
P_t3 IN TEST_01.t3%TYPE DEFAULT NULL,
P_CUR OUT V_CUR) IS
p_temp varchar(20);
BEGIN
if P_t2 is null then
p_temp := ' ';
else
p_temp := p_t2;
end if;
OPEN P_CUR FOR
SELECT t1, t2, t3, t4, t5, t6
FROM TEST_01
where t1 = P_t1
and nvl(t2, ' ') = p_temp
and t3 = p_t3;
END P_REFER; PROCEDURE P_MODIFY(ITYPE IN VARCHAR2 DEFAULT NULL,
p_t1 IN VARCHAR2,
p_t2 IN VARCHAR2,
p_t3 IN VARCHAR2,
p_t4 IN VARCHAR2,
p_t5 IN VARCHAR2,
p_t6 IN VARCHAR2,
P_CODE OUT NUMBER,
P_RTN_MSG OUT VARCHAR2) IS
BEGIN
P_code := 0;
IF iType = 'I' THEN
GOTO P_INSERT;
ELSif iType = 'U' then
GOTO P_UPDATE;
else
GOTO P_DELETE;
END IF;
<<P_INSERT>>
insert into test_01 values (p_t1, p_t2, p_t3, p_t4, p_t5, p_t6);
RETURN;
<<P_UPDATE>>
update test_01
set t2 = p_t2, t3 = p_t3, t4 = p_t4, t5 = p_t5, t6 = p_t6
where t1 = p_t1;
RETURN;
<<P_DELETE>>
delete from test_01 where t1 = p_t1;
RETURN;
EXCEPTION
WHEN NO_DATA_FOUND THEN
P_CODE := 1;
P_RTN_MSG := 'Testt P_MODIFY ERROR';
RETURN;
WHEN DUP_VAL_ON_INDEX THEN
P_CODE := 1;
P_RTN_MSG := 'DUP_VAL_ON_INDEX';
RETURN;
WHEN OTHERS THEN
P_CODE := 1;
P_RTN_MSG := SQLERRM;
END P_MODIFY;
end Message;
解决方案 »
- Oracle安装IP地址问题
- oracle 10g 启动过程,输入alter database mount后出现2,求指教~
- sqlplus -s $userid <<! 是什么意思
- 大数据量比对方法
- 字符型中文日期怎么转换成日期型
- 请教:扇入、扇出的概念是什么?
- 请问,如何查找两条记录的日期时间差?
- 已知一时间与另一时间之差,如何求另一时间,在线
- pl/sql存储过程返回record类型和集合类型(is table of record)的结果,Java里如何调用呢?
- orcal: not a GROUP BY expression
- 求SQL count(*) 的结果 放到游标里~~~~我这个SQL 错在哪里 ~~我放不进~
- Oracle 8i 解析顺序问题 求解
PROCEDURE P_REFER(P_t1 IN TEST_01.t1%TYPE DEFAULT NULL,
P_t2 IN TEST_01.t2%TYPE DEFAULT NULL,
P_t3 IN TEST_01.t3%TYPE DEFAULT NULL,
P_CUR OUT V_CUR);
END employee_management;