oracle 00371,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;

/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MathMLControl.DLL提供了以下函数和命令: 1. MathMLControl_Create:创建一个MathMLControl对象,并返回该对象的句柄。 2. MathMLControl_Destroy:销毁一个MathMLControl对象。 3. MathMLControl_SetMathML:设置要显示的数学公式,接受一个窗口句柄hwnd和一个数学公式的MathML字符串mathML作为参数。例如: ``` MathMLControl_SetMathML(hwnd, "<math><mrow><mi>x</mi><mo>+</mo><mi>y</mi></mrow></math>"); ``` 4. MathMLControl_SetScale:设置数学公式的缩放比例,接受一个窗口句柄hwnd和一个缩放比例scale作为参数。例如: ``` MathMLControl_SetScale(hwnd, 2.0); ``` 5. MathMLControl_GetMathML:获取当前数学公式的MathML代码,接受一个窗口句柄hwnd和一个缓冲区buf作为参数。例如: ``` StringBuilder buf = new StringBuilder(1024); MathMLControl_GetMathML(hwnd, buf, buf.Capacity); ``` 6. MathMLControl_SetFont:设置数学公式的字体,接受一个窗口句柄hwnd和一个字体名称fontName作为参数。例如: ``` MathMLControl_SetFont(hwnd, "Times New Roman"); ``` 7. MathMLControl_SetForeground:设置数学公式的前景色,接受一个窗口句柄hwnd和一个颜色值color作为参数。例如: ``` MathMLControl_SetForeground(hwnd, ColorTranslator.ToWin32(Color.Red)); ``` 8. MathMLControl_SetBackground:设置数学公式的背景色,接受一个窗口句柄hwnd和一个颜色值color作为参数。例如: ``` MathMLControl_SetBackground(hwnd, ColorTranslator.ToWin32(Color.White)); ``` 9. MathMLControl_SetBorder:设置数学公式的边框,接受一个窗口句柄hwnd和一个边框类型borderType作为参数。例如: ``` MathMLControl_SetBorder(hwnd, 1); ``` 其中,borderType为0表示无边框,为1表示单线边框,为2表示双线边框。 10. MathMLControl_SetFormat:设置数学公式的显示格式,接受一个窗口句柄hwnd和一个格式类型formatType作为参数。例如: ``` MathMLControl_SetFormat(hwnd, 1); ``` 其中,formatType为0表示inline格式,为1表示display格式。 11. MathMLControl_SetCursor:设置鼠标光标的形状,接受一个窗口句柄hwnd和一个光标类型cursorType作为参数。例如: ``` MathMLControl_SetCursor(hwnd, 0); ``` 其中,cursorType为0表示箭头光标,为1表示手形光标。 12. MathMLControl_SetMaxWidth:设置显示数学公式的最大宽度,接受一个窗口句柄hwnd和一个最大宽度maxWidth作为参数。例如: ``` MathMLControl_SetMaxWidth(hwnd, 800); ``` 以上就是MathMLControl.DLL提供的一些常用函数和命令。除此之外,MathMLControl.DLL还提供了一些其他的函数和命令,具体可以参考其官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值