pl/sql 示例程序合集

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. 计算:基础运算符


pl/sql 示例程序合集_第1张图片


11. 计算:二元运算符


pl/sql 示例程序合集_第2张图片


pl/sql 示例程序合集_第3张图片

12. 比较运算符:like


pl/sql 示例程序合集_第4张图片



13. 比较运算符:between


pl/sql 示例程序合集_第5张图片


pl/sql 示例程序合集_第6张图片

14. 比较运算符: in和notnull


pl/sql 示例程序合集_第7张图片


15. 逻辑运算符:and or not


pl/sql 示例程序合集_第8张图片


16. 算法优先级示例:


pl/sql 示例程序合集_第9张图片

17. if&then 用在数的例子:


pl/sql 示例程序合集_第10张图片


18. if then 用在表的例子:



pl/sql 示例程序合集_第11张图片


19. iif-then-else 数 例子:


pl/sql 示例程序合集_第12张图片


20. if-then-else if 例子:


pl/sql 示例程序合集_第13张图片

21. case when 例子


pl/sql 示例程序合集_第14张图片

或者

pl/sql 示例程序合集_第15张图片



22. 嵌套if-then-else:


pl/sql 示例程序合集_第16张图片

23. loop循环用法:


pl/sql 示例程序合集_第17张图片

也可以是:exit-when


pl/sql 示例程序合集_第18张图片

24。 while loop:


pl/sql 示例程序合集_第19张图片

25. for loop:


pl/sql 示例程序合集_第20张图片

可以是反for loop:


pl/sql 示例程序合集_第21张图片

26. 嵌套loop:


pl/sql 示例程序合集_第22张图片


27. 给loop加label:


pl/sql 示例程序合集_第23张图片

28. exit基础:


pl/sql 示例程序合集_第24张图片

29. exit when:


pl/sql 示例程序合集_第25张图片

30. continue用法:


pl/sql 示例程序合集_第26张图片

31. goto 用法


pl/sql 示例程序合集_第27张图片

32. 字符串声明方式:


pl/sql 示例程序合集_第28张图片


33. 常用字符串函数:


pl/sql 示例程序合集_第29张图片


pl/sql 示例程序合集_第30张图片


pl/sql 示例程序合集_第31张图片

34. 字符串命名举例:


pl/sql 示例程序合集_第32张图片

例子2:


pl/sql 示例程序合集_第33张图片


pl/sql 示例程序合集_第34张图片

35. 数组定义:

*sql里数组第一个数是1

pl/sql 示例程序合集_第35张图片

36. 利用cursor遍历数组:


pl/sql 示例程序合集_第36张图片

37.创造程序块:


pl/sql 示例程序合集_第37张图片

38. 创建离线程序块:


pl/sql 示例程序合集_第38张图片

39. 删除程序块:

pl/sql 示例程序合集_第39张图片


40. IN&OUT用法


pl/sql 示例程序合集_第40张图片

41. in&out&inout区别:



42. in&out 用法2


pl/sql 示例程序合集_第41张图片


pl/sql 示例程序合集_第42张图片

43. 传递参数3种方式:


pl/sql 示例程序合集_第43张图片

44. 创建功能方式:


pl/sql 示例程序合集_第44张图片

45. 调用功能方式:


pl/sql 示例程序合集_第45张图片


46. 功能例子:


pl/sql 示例程序合集_第46张图片

47. 利用功能递归:


pl/sql 示例程序合集_第47张图片

48. 用cursor给员工加薪并检查人数:


pl/sql 示例程序合集_第48张图片

49. cursor功能的例子:


pl/sql 示例程序合集_第49张图片

50. cursor的attribute:



pl/sql 示例程序合集_第50张图片

51. record:

分为table-based和cursor-based

tablebased:

pl/sql 示例程序合集_第51张图片


pl/sql 示例程序合集_第52张图片

cursorbased:


pl/sql 示例程序合集_第53张图片

52. 调用record的field:


pl/sql 示例程序合集_第54张图片


pl/sql 示例程序合集_第55张图片

53. 记录 subprogram参数:


pl/sql 示例程序合集_第56张图片


pl/sql 示例程序合集_第57张图片

54. exception模块:


pl/sql 示例程序合集_第58张图片

55. 也可以自己定义exception:


pl/sql 示例程序合集_第59张图片

56. 系统自带的exception种类:


pl/sql 示例程序合集_第60张图片


pl/sql 示例程序合集_第61张图片

57. trigger创建:


pl/sql 示例程序合集_第62张图片

触发trigger:

pl/sql 示例程序合集_第63张图片


或者:


pl/sql 示例程序合集_第64张图片

58. 使用package:


pl/sql 示例程序合集_第65张图片

59. 创建包:


pl/sql 示例程序合集_第66张图片


pl/sql 示例程序合集_第67张图片

60. 使用包:


pl/sql 示例程序合集_第68张图片

61. transaction:

触发transaction:用关键字commit

例如


pl/sql 示例程序合集_第69张图片

想回滚:

用rollback关键字


pl/sql 示例程序合集_第70张图片

62. 自动保存:


pl/sql 示例程序合集_第71张图片

63 *http://www.cnblogs.com/zcy_soft/archive/2011/05/05/2038216.html

你可能感兴趣的:(pl/sql 示例程序合集)