编译不通过,希望大家指导PROCEDURE PRO_USER_GETINFOE(RST OUT INFOE,U_TYPENAME VARCHAR2)
IS
TYPEID NUMBER;
BEGIN
SELEC C_TYPE INTO TYPEID FROM T_USER WHERE C_TYPENAME=U_TYPENAME;
if TYPEID=1 THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_1;
END;
END IF;
if TYPEID=2
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_2;
END;
END IF;
if TYPEID=3
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_3;
END;
END IF;
if TYPEID=4
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_4;
END;
END IF;
if TYPEID=5
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_5;
END;
END IF;
END PRO_USER_GETINFOE;
IS
TYPEID NUMBER;
BEGIN
SELEC C_TYPE INTO TYPEID FROM T_USER WHERE C_TYPENAME=U_TYPENAME;
if TYPEID=1 THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_1;
END;
END IF;
if TYPEID=2
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_2;
END;
END IF;
if TYPEID=3
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_3;
END;
END IF;
if TYPEID=4
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_4;
END;
END IF;
if TYPEID=5
THEN
BEGIN
OPEN RST FOR SELECT * FROM T_USER_5;
END;
END IF;
END PRO_USER_GETINFOE;
CREATE OR REPLACE PROCEDURE PRO_USER_GETINFOE(RST OUT INFOE,U_TYPENAME IN VARCHAR2)
IS
TYPEID NUMBER;
BEGIN
SELEC C_TYPE INTO TYPEID FROM T_USER WHERE C_TYPENAME=U_TYPENAME;
IF TYPEID=1 THEN
OPEN RST FOR SELECT * FROM T_USER_1;
ELSEIF TYPEID=2 THEN
OPEN RST FOR SELECT * FROM T_USER_2;
ELSEIF TYPEID=3 THEN
OPEN RST FOR SELECT * FROM T_USER_3;
ESLEIF TYPEID=4 THEN
OPEN RST FOR SELECT * FROM T_USER_4;
ELSE
OPEN RST FOR SELECT * FROM T_USER_5;
END IF;
END PRO_USER_GETINFOE;
3楼的差不多
不过oracle的elseif 要写出elsif
CREATE OR REPLACE PROCEDURE PRO_USER_GETINFOE(
RST OUT INFOE,
U_TYPENAME IN VARCHAR2)
IS
TYPEID NUMBER;
BEGIN
SELECT C_TYPE INTO TYPEID
FROM T_USER
WHERE C_TYPENAME=U_TYPENAME;
IF TYPEID=1 THEN
OPEN RST FOR SELECT * FROM T_USER_1;
ELSEIF TYPEID=2 THEN
OPEN RST FOR SELECT * FROM T_USER_2;
ELSEIF TYPEID=3 THEN
OPEN RST FOR SELECT * FROM T_USER_3;
ESLEIF TYPEID=4 THEN
OPEN RST FOR SELECT * FROM T_USER_4;
ELSE
OPEN RST FOR SELECT * FROM T_USER_5;
END IF;
END PRO_USER_GETINFOE;
PROCEDURE PRO_USER_GETINFOE(RST OUT INFOE, U_TYPENAME VARCHAR2) IS
TYPEID NUMBER;
BEGIN
SELEC C_TYPE --这里selec写错了,应该是select
INTO TYPEID FROM T_USER WHERE C_TYPENAME = U_TYPENAME;
if TYPEID = 1
THEN
BEGIN
OPEN RST FOR
SELECT * FROM T_USER_1;
END;
END IF;
if TYPEID = 2 THEN
BEGIN
OPEN RST FOR
SELECT * FROM T_USER_2;
END;
END IF;
if TYPEID = 3 THEN
BEGIN
OPEN RST FOR
SELECT * FROM T_USER_3;
END;
END IF;
if TYPEID = 4 THEN
BEGIN
OPEN RST FOR
SELECT * FROM T_USER_4;
END;
END IF;
if TYPEID = 5 THEN
BEGIN
OPEN RST FOR
SELECT * FROM T_USER_5;
END;
END IF;
END PRO_USER_GETINFOE;还不行的话,把错误信息贴出来,这是问问题的最基本要求