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;
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;
相关文章推荐
- Oracle ->> 变量赋值 Demo
- Python 2.7.9 Demo - 019.01.CRUD oracle by cx_Oracle
- oracle 10g 安装时 不能进入图形界面的问题
- SSIS 使用OLEDB/ADO NET Source 数据流source控件 连接Oracle失败
- Java并发教程(Oracle官方资料)
- oracle数据库在删掉全部重做日志后如何进行恢复
- oracle 11GR2 dataguard SWITCHOVER FAILOVER
- ORACLE DATAGUARD 11G R2 RAC TO RAC
- Oracle禁止connect / as sysdba方式登录
- SQL Server、Oracle、MySQL和Vertica数据库常用函数对比
- oracle DG 主备库为RAC及一个主库对多个从库的实验环境搭建
- Oracle发送邮件,支持HTML,多收件人,多附件
- 原创Oracle数据泵导出/导入(expdp/impdp)
- oracle 创建数据库
- oracle 创建数据库
- 【Oracle错误集锦】:ORA-00119 & ORA-00132
- OEM无法登陆原因与ORACLE用户密码过期和锁定的解决办法(附上系统用户默认密码)
- oracle分区表彻底删除的办法
- 九、oracle 事务
- Oracle中Hint深入理解