【问题标题】:unable to execute sql procedure on oracle live sql无法在oracle live sql上执行sql过程
【发布时间】:2022-12-31 08:12:03
【问题描述】:

我创建了一个程序

create or replace procedure dba_role 
as 
   user  varchar2(200); 
   ref   varchar2(200);  
   
begin  
   
  insert into dba_role_privs(grantee,granted_role) (select user as grantee,granted_role from dba_role_privs where grantee=ref);
 
end; 

程序正在创建,但我无法执行该程序。我尝试了不同的方法来通过传递参数来执行它,但没有任何效果。

谁能告诉我如何在 oracle live SQL 中执行这个过程 要传递的参数都是字符串(varchars)

例如:我试过“执行 dba_role('alex','hunter');

错误是 **ORA-06550:第 1 行,第 7 列:**PLS-00306:调用“DBA_ROLE”时参数的数量或类型错误**

【问题讨论】:

    标签: sql oracle


    【解决方案1】:
    create or replace procedure 
        dba_role(user IN VarChar2, ref IN VarChar2) AS  
    
    begin  
      insert into dba_role_privs(grantee,granted_role) (select user as grantee,granted_role from dba_role_privs where grantee=ref);
    end dba_role; 
    

    它应该是这样定义的——有两个 VarChar2 参数。以下是如何称呼它:

    Begin
        dba_role('your_user_paarameter',  'your_ref_parameter');
    End;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-11-19
      • 2018-07-01
      • 2019-02-05
      • 2017-10-18
      相关资源
      最近更新 更多