您的位置:首页 > 数据库 > Oracle

Oracle存储过程2

2015-07-02 23:12 651 查看
---查看所有用户

select * from all_users;

select * from user_users;

---查看用户系统权限

select * from dba_sys_privs;

select * from user_sys_privs;

---查看用户对象权限

select * from all_tab_privs;

select * from user_tab_privs;

---查看用户所拥有的角色

select * from user_role_privs;

--查看当前用户的缺省表空间

select username,default_tablespace from user_users;

在Dos命令窗口中  C:\>sqlplus '/ as sysdba'

在登录的命令窗口中  GRANT debug any procedure, debug connect session TO scott更改权限

create or replace procedure aa

       is

       

       cursor aa_cursor is select salary from employees;

       v_sum_sal number(10);

begin

       v_sum_sal := 0;

       

       for c in aa_cursor loop

           v_sum_sal := v_sum_sal + c.salary;

       end loop;       

       dbms_output.put_line('sum salary: ' || v_sum_sal);

end;

create or replace procedure aa

       is

       

       --cursor aa_cursor is select salary from employees;

       TYPE A IS TABLE OF employees.salary%TYPE INDEX BY BINARY_INTEGER;

       aa A;

       v_sum_sal number(10);

begin

       v_sum_sal := 0;

       

       --for c in aa_cursor loop

       for c in 1..aa.count loop

           --v_sum_sal := v_sum_sal + c.salary;

           v_sum_sal := v_sum_sal + c;

       end loop;       

       dbms_output.put_line('sum salary: ' || v_sum_sal);

end;

create or replace procedure aa

       is

       

       --cursor aa_cursor is select salary from employees;

       TYPE A IS TABLE OF employees.salary%TYPE INDEX BY BINARY_INTEGER;

       ab A;

       v_sum_sal number(10);

begin

       v_sum_sal := 0;

       dbms_output.put_line('count: ' || ab.count);

       --for c in aa_cursor loop

       for c in 1..ab.count loop

           --v_sum_sal := v_sum_sal + c.salary;

           dbms_output.put_line('salary: ' || c);

           v_sum_sal := v_sum_sal + c;

       end loop;       

       dbms_output.put_line('sum salary: ' || v_sum_sal);
end;

create or replace procedure sum_sal_procedure(dept_id number, v_sum_sal out number)

       is

       

       cursor sal_cursor is select salary from employees where department_id = dept_id;

begin

       v_sum_sal := 0;

       

       for c in sal_cursor loop

           --dbms_output.put_line(c.salary);

           v_sum_sal := v_sum_sal + c.salary;

       end loop;       

       dbms_output.put_line('sum salary: ' || v_sum_sal);

end;

declare 

     v_sum_sal number(10) := 0;

     

begin

     sum_sal_procedure(80,v_sum_sal);--第二个参数用于输出

     dbms_output.put_line(v_sum_sal);

end;

create or replace procedure TestPro(v_name in varchar2,

                                    v_out out varchar2

                                    ) is

   TYPE emp_ssn_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;

   TYPE nameArr IS TABLE OF VARCHAR2(100) INDEX BY PLS_INTEGER; 

   best_employees emp_ssn_array;

   worst_employees emp_ssn_array;

   v_n nameArr;

   v_t varchar2(32);                               

begin

  select e.ename into v_t from emp e where e.empno='7369';

  for i in 1 .. 2 loop

    v_n(i) := v_t;

  end loop;

  --v_n(1) := v_t;

  dbms_output.put_line(v_t||',v_n(1)='||v_n(1));

  best_employees(1) := '123456';

  best_employees(2) := '888888';

  worst_employees(1) := '222222';

  worst_employees(2) := '666666';

  FOR i IN 1..best_employees.count LOOP

    dbms_output.put_line('i=:'||i||', best_employees='

    ||best_employees(i)|| ', worst_employees= ' ||worst_employees(i));

  end loop;

  

  dbms_output.put_line('v_name:'||v_name);

  v_out := v_name;

end TestPro;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: