存储过程的输出

时间:2014-04-18 16:33:55

标签: oracle stored-procedures

任何人都可以告诉我如何在oracle中执行以下存储过程: -

 create or replace PROCEDURE spValidateDBA(
    UserId IN VARCHAR2,
    UserPassword IN VARCHAR2,
  UserRole OUT STRING_ARRAY)
  AS
BEGIN
EXECUTE IMMEDIATE 'select GRANTED_ROLE into UserRole from DBA_USERS DU,DBA_ROLE_PRIVS DRP where DU.USERNAME=UserId and
    DU.PASSWORD=UserPassword AND DU.USERNAME=DRP.GRANTEE';
    END spValidateDBA;

STRING_ARRAY是此语句中声明的字符串数组类型: - CREATE TYPE STRING_ARRAY AS VARCHAR2(50);

如有任何问题,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您需要编写一个无限的pl / sql块:

DECLARE
<declare variables>
BEGIN
<set values to the variables>
spValidateDBA(<your variables>);
END;
/

如果您在SQL * Plus或类似的东西中运行,那么最后需要额外的/。 如果您正在运行某些API,则可能不需要它。