oracle 最多允许有一个声明,PLS-00371: 'WEB_LOGIN_CHECK_PK.CURSORTYPE' 最多允许有一个声明...

Oracle 10.2.0.4  ,   从其他地方导入过来的packages,  发现编译的时候报错。

报错信息如下:

PACKAGE BODY DPBG_WEB.WEB_LOGIN_CHECK_PK

On line:  11

PLS-00371: 'WEB_LOGIN_CHECK_PK.CURSORTYPE' 最多允许有一个声明

package的spec 如下:

CREATE OR REPLACE PACKAGE DPBG_WEB.Web_Login_Check_Pk

AS

TYPE CURSORTYPE IS REF CURSOR;

PROCEDURE WEB_CHECK_LOGIN_USER_SP (

V_SYS_NAME     IN       VARCHAR2,

-- V_ROLE_TYPE IN VARCHAR2,

V_LOGIN_NAME   IN       VARCHAR2,

-- V_CHECK_TYPE IN VARCHAR2,

RES            OUT      VARCHAR2,

P_CURSOR       OUT      Web_Login_Check_Pk.CURSORTYPE   );

PROCEDURE DMZ_CHECK_LOGIN_USER_SP (

V_SYS_NAME     IN       VARCHAR2,

-- V_ROLE_TYPE IN VARCHAR2,

V_LOGIN_NAME   IN       VARCHAR2,

-- V_CHECK_TYPE IN VARCHAR2,

RES            OUT      VARCHAR2,

P_CURSOR       OUT      Web_Login_Check_Pk.CURSORTYPE

);

PROCEDURE GET_LOGIN_INFO_SP (

V_USER_NO   IN       VARCHAR2,

RES         OUT      VARCHAR2,

P_CURSOR    OUT      Web_Login_Check_Pk.CURSORTYPE

);

END Web_Login_Check_Pk;

/

Body 如下:

CREATE OR REPLACE PACKAGE BODY DPBG_WEB.Web_Login_Check_Pk AS

TYPE CURSORTYPE IS REF CURSOR;

PROCEDURE WEB_CHECK_LOGIN_USER_SP (

V_SYS_NAME IN VARCHAR2,

--V_ROLE_TYPE IN VARCHAR2,

V_LOGIN_NAME IN VARCHAR2,

--V_CHECK_TYPE IN VARCHAR2,

RES OUT VARCHAR2,

P_CURSOR OUT Web_Login_Check_Pk.CURSORTYPE

)

AS

BEGIN

/*    IF V_CHECK_TYPE = 'NT_ACCOUNT' THEN

OPEN P_CURSOR FOR

SELECT A.SYS_ID,B.ROLE_ID,B.ROLE_NAME,C.NOR_USER_NAME

FROM R_SYSTEM_INFO_T A,

R_ROLE_INFO_T B,

R_ROLE_NORMAL_USER_T C

WHERE B.ROLE_ID = C.ROLE_ID

AND A.SYS_ID = B.SYS_ID

AND C.NOR_USER_TYPE = V_ROLE_TYPE --'AD-GROUP'

AND B.DEL_FLAG ='0'

AND A.DEL_FLAG ='0'

AND A.SYS_NAME =V_SYS_NAME;--'DSD'

ELSE*/

OPEN P_CURSOR FOR

SELECT A.ROLE_ID,A.SPC_USER_PW,A.SYS_ID,A.SPC_USER_NAME,

A.USER_DEPT,C.TEAM_NAME,A.USER_DESC

FROM R_ROLE_SPECIAL_USER_T A,

R_SYSTEM_INFO_T B,

C_IT_DEPT_T C

WHERE A.SYS_ID = B.SYS_ID

AND A.USER_DEPT = C.TEAM_ID(+)

AND B.DEL_FLAG='0'

AND B.SYS_NAME =V_SYS_NAME

AND A.DEL_FLAG='0'

AND A.SPC_USER_NAME = V_LOGIN_NAME;

--END IF;

RES:= 'ok';

EXCEPTION

WHEN OTHERS THEN

RES:='EXCEPTION ERROR.';

END WEB_CHECK_LOGIN_USER_SP;

PROCEDURE DMZ_CHECK_LOGIN_USER_SP (

V_SYS_NAME     IN       VARCHAR2,

-- V_ROLE_TYPE IN VARCHAR2,

V_LOGIN_NAME   IN       VARCHAR2,

-- V_CHECK_TYPE IN VARCHAR2,

RES            OUT      VARCHAR2,

P_CURSOR       OUT      Web_Login_Check_Pk.CURSORTYPE

)

AS

BEGIN

/*    IF V_CHECK_TYPE = 'NT_ACCOUNT' THEN

OPEN P_CURSOR FOR

SELECT A.SYS_ID,B.ROLE_ID,B.ROLE_NAME,C.NOR_USER_NAME

FROM R_SYSTEM_INFO_T A,

R_ROLE_INFO_T B,

R_ROLE_NORMAL_USER_T C

WHERE B.ROLE_ID = C.ROLE_ID

AND A.SYS_ID = B.SYS_ID

AND C.NOR_USER_TYPE = V_ROLE_TYPE --'AD-GROUP'

AND B.DEL_FLAG ='0'

AND A.DEL_FLAG ='0'

AND A.SYS_NAME =V_SYS_NAME;--'DSD'

ELSE*/

OPEN P_CURSOR FOR

SELECT A.ROLE_ID,A.SPC_USER_PW,A.SYS_ID,A.SPC_USER_NAME,

A.USER_DEPT,C.TEAM_NAME,A.USER_DESC

FROM R_ROLE_SPECIAL_USER_T A,

R_SYSTEM_INFO_T B,

C_IT_DEPT_T C

WHERE A.SYS_ID = B.SYS_ID

AND A.USER_DEPT = C.TEAM_ID(+)

AND B.DEL_FLAG='0'

AND B.SYS_NAME ='REPORT'

AND A.DEL_FLAG='0'

AND A.SPC_USER_NAME = V_LOGIN_NAME;

--END IF;

RES:= 'ok';

EXCEPTION

WHEN OTHERS THEN

RES:='EXCEPTION ERROR.';

END DMZ_CHECK_LOGIN_USER_SP;

PROCEDURE GET_LOGIN_INFO_SP (

V_USER_NO IN VARCHAR2,

RES OUT VARCHAR2,

P_CURSOR OUT Web_Login_Check_Pk.CURSORTYPE

)

AS

BEGIN

OPEN P_CURSOR FOR

SELECT A.ID,A.TEAM_ID,A.USER_NAME,A.USER_NO,A.USER_TEL,A.USER_MAIL,B.ROLE_ID

FROM C_IT_MEMBER_T A,

R_ROLE_USER_T B

WHERE A.ID=B.USER_ID(+)

AND A.USER_NO=V_USER_NO ;

END GET_LOGIN_INFO_SP;

END Web_Login_Check_Pk;

/

不是搞开发的,  不知道如何删除重复的定义 。   熟悉的帮忙看看 。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-696930/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值