OCP认证考试指南(10):使用PL/SQL进行Oracle编程
1、编程语言与Oracle数据库
1.1、存储的与匿名的PL/SQL程序块
与存储的PL/SQL程序块相比,匿名的PL/SQL程序块效率较低,此外由于可能在多台机器中公布源代码,还会引发管理问题。
1.2、PL/SQL对象
PL/SQL对象具有下列5种类型:
过程
函数
程序包
程序包主体
触发器
2、过程、函数以及程序包
2.1、过程与函数
过程(Procedure)是一个执行某些动作的代码块。要运行一个过程,既可以在PL/SQL程序块内部调用这个过程,也可以使用交互式的EXECUTE命令。
函数(Function)与过程的概念相似,但并不具有OUT型实参,并且无法使用EXECUTE命令来调用。函数应当通过RETURN返回一个值。
如果使用的是CREATE命令而不是CREATE OR REPLACE命令,那么在指定对象已存在的情况下必须先删除这个对象。
函数:
?[Copy to clipboard]View Code PLSQL
SQL> create or replace function odd_even(v1 number)
2 return varchar2
3 as
4 begin
5 if
6 mod(v1,2) = 0
7 then
8 return 'even';
9 else
10 return 'odd';
11 end if;
12 end odd_even;
13 /
Function created.
SQL> select odd_even(8) from dual;
ODD_EVEN(8)
-------------------------------------------------------------------
even
SQL> select odd_even(9) from dual;
ODD_EVEN(9)
-------------------------------------------------------------------
odd
过程:
?[Copy to clipboard]View Code PLSQL
SQL> conn system/oracle
Connected.
SQL> create table integers (
2 C1 number(2),
3 C2 varchar2(5));
Table created.
SQL> create or replace procedure ins_ints(v1 in number)
2 as
3 begin
4 for i in 1..v1 loop
5 insert into integers values (i, odd_even(i));
6 end loop;
7 end ins_ints;
8 /
Procedure created.
SQL> execute ins_ints(5);
PL/SQL procedure successfully completed.
SQL> select * from integers;
C1 C2
---------- -----
1 odd
2 even
3 odd
4 even
5 odd
2.2、程序包
程序包(Package)由规范和主体两个对象组成。
使用CREATE PACKAGE命
相关文档:
1. 查看密码文件中的成员:
可以通过查询视图V$PWFILE_USERS来获取拥有SYSOPER/SYSDBA系统权限的用户的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用户是否拥有相应的权限。这些用户也就是相应地存在于密码文件中的成员。
2. 扩展密码文件的用户数量:
当向Oracle数据库密码文件添加的帐号数目超过创建密码文件时 ......
-- Drop existing database link drop database link DL_name
-- Create database link create database link DL_name connect to username identified by userpwd using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ipaddress)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service_name)))'; ......
分类统计总数并排序多表联合查询的两种方法
例:
查询地区表中各省下面城市总数,并对查询结果取前十名
法一:
select b.id,a.[name],b.counts from n_area a,(select top 10 parent_id as id,sum(parent_id) as counts from n_area where parent_id<>0 group by parent_id order by sum(parent_id) desc
) b where ......
SQL优化查询
收藏
数据库的查询优化技术
数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应
用之一。从大多 ......