1. helloworld:
DECLARE
-- variable declaration
message varchar2(20):='Hello, World!';
BEGIN
/*
* PL/SQL executable statement(s)
*/
dbms_output.put_line(message);
END;
/
2. subtype定义:
DECLARE
SUBTYPE name IS char(20);
SUBTYPEmessageIS varchar2(100);
salutation name;
greetings message;
BEGIN
salutation:='Reader ';
greetings:='Welcome to the World of PL/SQL';
dbms_output.put_line('Hello '||salutation||greetings);
END;
/
3. 定义变量:
DECLARE
a integer:=10;
b integer:=20;
c integer;
f real;
BEGIN
c:=a+b;
dbms_output.put_line('Value of c: '||c);
f:=70.0/3.0;
dbms_output.put_line('Value of f: '||f);
END;
/
4. 环境变量和局部变量的区别:
DECLARE
-- Global variables
num1 number:=95;
num2 number:=85;
BEGIN
dbms_output.put_line('Outer Variable num1: '||num1);
dbms_output.put_line('Outer Variable num2: '||num2);
DECLARE
-- Local variables
num1 number:=195;
num2 number:=185;
BEGIN
dbms_output.put_line('Inner Variable num1: '||num1);
dbms_output.put_line('Inner Variable num2: '||num2);
END;
END;
/
5. 定义常量:
pi CONSTANT double precision:=3.1415;
6. 创建表:
CREATE TABLECUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR(20)NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(25),
SALARY DECIMAL(18,2),
PRIMARY KEY(ID)
);
TableCreated
7. 向表里添加数据:
INSERT INTO CUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(1,'Ramesh',32,'Ahmedabad',2000.00);
INSERT INTOCUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(2,'Khilan',25,'Delhi',1500.00);
INSERT INTOCUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(3,'kaushik',23,'Kota',2000.00);
INSERT INTOCUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(4,'Chaitali',25,'Mumbai',6500.00);
INSERT INTOCUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(5,'Hardik',27,'Bhopal',8500.00);
INSERT INTOCUSTOMERS(ID,NAME,AGE,ADDRESS,SALARY)
VALUES(6,'Komal',22,'MP',4500.00);
8. 从表中查询数据:
DECLARE
c_id customers.id%type:=1;
c_name customers.name%type;
c_addr customers.address%type;
c_sal customers.salary%type;
BEGIN
SELECT name
,address,salaryINTOc_name,c_addr,c_sal
FROMcustomers
WHEREid=c_id;
dbms_output.put_line
('Customer '||c_name||' from '||c_addr||' earns '||c_sal);
END;
/
9. 声明和使用常量PI:
PI CONSTANT NUMBER:=3.141592654;
DECLARE
-- constant declaration
piconstant number:=3.141592654;
-- other declarations
radiusnumber(5,2);
dianumber(5,2);
circumferencenumber(7,2);
areanumber(10,2);
BEGIN
-- processing
radius:=9.5;
dia:=radius*2;
circumference:=2.0*pi*radius;
area:=pi*radius*radius;
-- output
dbms_output.put_line('Radius: '||radius);
dbms_output.put_line('Diameter: '||dia);
dbms_output.put_line('Circumference: '||circumference);
dbms_output.put_line('Area: '||area);
END;
/
10. 计算:基础运算符
11. 计算:二元运算符
12. 比较运算符:like
13. 比较运算符:between
14. 比较运算符: in和notnull
15. 逻辑运算符:and or not
16. 算法优先级示例:
17. if&then 用在数的例子:
18. if then 用在表的例子:
19. iif-then-else 数 例子:
20. if-then-else if 例子:
21. case when 例子
或者
22. 嵌套if-then-else:
23. loop循环用法:
也可以是:exit-when
24。 while loop:
25. for loop:
可以是反for loop:
26. 嵌套loop:
27. 给loop加label:
28. exit基础:
29. exit when:
30. continue用法:
31. goto 用法
32. 字符串声明方式:
33. 常用字符串函数:
34. 字符串命名举例:
例子2:
35. 数组定义:
*sql里数组第一个数是1
36. 利用cursor遍历数组:
37.创造程序块:
38. 创建离线程序块:
39. 删除程序块:
40. IN&OUT用法
41. in&out&inout区别:
42. in&out 用法2
43. 传递参数3种方式:
44. 创建功能方式:
45. 调用功能方式:
46. 功能例子:
47. 利用功能递归:
48. 用cursor给员工加薪并检查人数:
49. cursor功能的例子:
50. cursor的attribute:
51. record:
分为table-based和cursor-based
tablebased:
cursorbased:
52. 调用record的field:
53. 记录 subprogram参数:
54. exception模块:
55. 也可以自己定义exception:
56. 系统自带的exception种类:
57. trigger创建:
触发trigger:
或者:
58. 使用package:
59. 创建包:
60. 使用包:
61. transaction:
触发transaction:用关键字commit
例如
想回滚:
用rollback关键字
62. 自动保存:
63 *http://www.cnblogs.com/zcy_soft/archive/2011/05/05/2038216.html