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命
相关文档:
declare @p int
declare @p1 int
declare @count int
set @p=0
set @p1=10
set @count=2
if(@count<>0 or @count<>1)
set @p=@p1*@count-10
SELECT [t1].[userid], [t1].[username], [t1].[userorder]
from (
SELECT ROW_NUMBER() OVER (ORDER BY [t0].[userorder]) AS [ROW_NU ......
#新增一个字段,默认值为0,非空,自动增长,主键
alter table tabelname add new_field_name field_type default 0 not null auto_increment ,add primary key (new_field_name);
#增加一个新字段
alter table tableName add new_field_name field_type;
alter table tableNam ......
SQL提供了四种模糊匹配方式
1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请运用两个百分号(%%)表示。
比如 SELECT * from [user] WHERE u_name LIKE '%三%'
将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三& ......
SQL Server中联机丛书
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@D ......