`
VerRan
  • 浏览: 456982 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

PL/SQL学习

阅读更多

1.第四代编程语言

PL/SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对Oracle数据库进行访问。由于该语言继承于数据库服务器中,所以PL/SQL代码可以对数据记性快速搞笑的处理。

SQL是先进的第四代程序设计语言,使用这种语言只需对要完成的任务进行描述,而不必指定实现任务的具体方法。

比如一个删除操作用SQL

 

delet from student where condition

 

然而要是应用第三代的编程语言,Cjava都需要进行循环实现的。

2.为什么要提出PL/SQL

     SQL作为第四代编程语言使用起来非常的简单,对数据的具体处理完全由该类语言的运行时系统进行实现。而某些情况下,第三代语言使用的过程结构在表达某些程序过程来说是非常有用的。

     PL/SQL是将第四代语言的枪法功能和灵活性与第三代语言的过程结构的优势融为一体。

     PL/SQL代表面向过程化的怨言与SQL语言的结合。它实现了将过程结构和Oracle SQL的无缝集成。

3.PL/SQL实现循环插入

 

declare 
LoopCounter NUMBER(12):=1000;
v_createDate DATE:=to_date('<st1:chsdate w:st="on" year="2007" month="7" day="12" islunardate="False" isrocdate="False">2007-7-12</st1:chsdate>','yy-mm-dd');
v_sts CHAR(1):='A';
v_stsDate DATE:=to_date('<st1:chsdate w:st="on" year="2007" month="7" day="12" islunardate="False" isrocdate="False">2007-7-12</st1:chsdate>','yy-mm-dd');
begin
loop
insert into project(project.project_id,create_date,sts,sts_date) values(LoopCounter,v_createDate,v_sts,v_stsDate);
commit;
LoopCounter:=LoopCounter+1;
exit when(LoopCounter>1010);
end loop;
end;

 这个是一个利用

 

PL/SQL实现向project表中循环插入10条记录的sql代码。

 

 

 利用for来实现上面的例子:

 

 

Begin

For LoopCounter in 1000..1010 loop

insert into project(project.project_id,create_date,sts,sts_date) values(LoopCounter,v_createDate,v_sts,v_stsDate);
commit;

End

 

 

 

4.游标的使用

带参数的游标

  与存储过程和函数相似,可以将参数传递给游标并在查询中使用。这对于处理在某种条件下打开游标的情况非常有用。它的语法如下:

CURSOR cursor_name[(parameter[,parameter],...)] IS select_statement;

  定义参数的语法如下:

Parameter_name [IN] data_type[{:=|DEFAULT} value]

  与存储过程不同的是,游标只能接受传递的值,而不能返回值。参数只定义数据类型,没有大小。

  另外可以给参数设定一个缺省值,当没有参数值传递给游标时,就使用缺省值。游标中定义的参数只是一个占位符,在别处引用该参数不一定可靠。

  在打开游标时给参数赋值,语法如下:

OPEN cursor_name[value[,value]....];

  参数值可以是文字或变量。

参数值可以是文字或变量。

  例:

 

DECALRE
CURSOR c_dept IS SELECT * FROM dept ORDER BY deptno;
CURSOR c_emp (p_dept VARACHAR2) IS
SELECT ename,salary
FROM emp
WHERE deptno=p_dept
ORDER BY ename
r_dept DEPT%ROWTYPE;
v_ename EMP.ENAME%TYPE;
v_salary EMP.SALARY%TYPE;
v_tot_salary EMP.SALARY%TYPE;
BEGIN
OPEN c_dept;
LOOP
FETCH c_dept INTO r_dept;
EXIT WHEN c_dept%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Department:'|| r_dept.deptno||'-'||r_dept.dname);
v_tot_salary:=0;
OPEN c_emp(r_dept.deptno);
LOOP
FETCH c_emp INTO v_ename,v_salary;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Name:'|| v_ename||' salary:'||v_salary);
v_tot_salary:=v_tot_salary+v_salary;
END LOOP;
CLOSE c_emp;
DBMS_OUTPUT.PUT_LINE('Toltal Salary for dept:'|| v_tot_salary);
END LOOP;
CLOSE c_dept;
END;

 

 

5. PL/SQL中属性的类型:

type引用数据库列.

rowtype 代表表中的行。

6.存储过程的编写

存储过程是一种运行在服务器端的,sql语句的集合。可以处理一个完整的业务,而其执行是在数据库服务器端的。

下面就Oracle中实现存储过程的编写和调用进行讲解:

下面写了一个删除项目信息的存储过程:

 

 

下面是调用代码:

 

SQL> begin

  2  deleteProjec(1001);

  3  commit;

  4  end;

  5  /




begin


p project%rowtype;

select * into p from project where project.project_id=1001;

Dbms_Output.put(p.project_id);

end;

 7.

 

一个包中可以编写多个过程或者函数。

8. 动态SQL

借助于动态SQL,一个PL/SQL应用可以在运行期间构造并执行SQL语句。

9. 对象类型

10. 集合

11.java 中调用存储过程

 

12.触发器

12.1.DML触发器

12.2.替代触发器

12.3创建触发器 

 

分享到:
评论

相关推荐

    Oracle PL/SQL学习官方教材

    以下是对"Oracle PL/SQL学习官方教材"中可能包含的主要知识点的详细解释: 1. **基础概念**:首先,教材会介绍PL/SQL的基本概念,包括块(Block)、变量(Variable)、常量(Constant)、数据类型(Data Types)和...

    pl/sql 学习资料

    在这个“PL/SQL学习资料”压缩包中,包含了十一个PDF文件,覆盖了从基础到进阶的广泛主题。下面我们将详细探讨这些知识点。 1. **PL/SQL基础知识**: - PL/SQL结构:了解块的概念,包括声明部分、执行部分和异常...

    PL/SQL学习资料

    这个“PL/SQL学习资料”压缩包包含了对这一编程语言深入理解和应用的关键知识点。 PL/SQL由三部分组成:声明部分、执行部分和异常处理部分。在声明部分,我们可以定义变量、常量、游标、记录类型等;执行部分用于...

    PL/SQL学习笔记

    PL/SQL是Oracle公司开发的一种过程化SQL扩展,它是Oracle数据库的重要组成部分,用于在数据库服务器上编写存储过程、函数、触发器、包等可执行...通过学习和掌握PL/SQL,开发者可以构建高效、复杂的数据库应用程序。

    PL/SQL学习教程,附笔记

    在学习PL/SQL的过程中,理解这些基本概念和结构是至关重要的。通过实践编写存储过程、函数和触发器,你可以逐渐掌握PL/SQL的强大功能,并利用它来解决实际的数据库编程问题。对于初学者来说,循序渐进、结合实例学习...

    最容易上手的PL/SQL学习教程-有经过测试的丰富案例

    本教程专注于为初学者提供一个易于上手的PL/SQL学习路径,通过丰富的测试案例,帮助读者快速掌握这一强大的数据库编程工具。 首先,让我们深入了解一下PL/SQL的基本概念。在第1章中,教程介绍了SQL与PL/SQL的关系。...

    pl/sql学习笔记

    以下是对PL/SQL的学习笔记的详细解析: 1. **什么是PL/SQL语言** PL/SQL是Oracle数据库为数据库管理员和开发人员设计的一种编程语言。它扩展了SQL的功能,允许编写包含控制结构、变量、过程和函数的程序段,这些...

    PL/SQL学习总结

    PL/SQL 是 Oracle 数据库的一种过程化语言,用于编写数据库应用程序。它结合了 SQL 查询功能和高级编程元素,如变量、流程控制结构和异常处理。本文主要总结了 PL/SQL 的一些基本语句和操作,特别关注在 ORACLE 报表...

    PL/SQL学习课件

    本套学习课件全面覆盖了PL/SQL的基础知识,旨在帮助初学者深入理解和掌握这一强大的数据库编程工具。 首先,第一章“PLSQL简介”会介绍PL/SQL的基本概念,包括其组成部分,如声明部分、执行部分和异常处理部分,...

    pl/sql学习文档

    PL/SQL,全称Procedural Language/Structured Query Language,是Oracle数据库提供的一个编程环境,主要用于处理Oracle数据库中的...这个"PL/SQL学习文档"将提供详细的解释和示例,帮助您一步步掌握这个强大的工具。

    pl/sql最新中文手册

    这个"PL/SQL最新中文手册"显然是一份详细解释PL/SQL 7.0版本的指南,对于学习和精通Oracle数据库编程至关重要。以下是手册可能涵盖的一些核心知识点: 1. **PL/SQL基础**:手册可能会从基础开始,介绍PL/SQL的基本...

    oracle10g_pl/sql

    通过深入学习Oracle 10g PL/SQL,不仅可以掌握数据库编程的基本技能,还能了解如何利用这些技能来设计和实现复杂的业务逻辑,优化数据库性能,以及更好地维护和管理Oracle数据库系统。本教程涵盖了所有这些关键知识...

    一个对数据库的操作工具PL/SQLpl/sqL工具

    PL/SQL是Oracle公司开发的一种过程化语言,全称为Procedural Language/Structured Query Language,它是SQL的一个扩展,专门用于处理Oracle数据库...通过深入学习和熟练掌握PL/SQL,可以提升你在数据库领域的专业技能。

    oracle 中 pl/sql 只是学习方法

    Oracle中的PL/SQL是一种强大的编程语言,它是Oracle数据库与应用程序之间的桥梁,专为数据库操作而设计。PL代表“过程化语言”(Procedural Language),SQL则是“结构化查询语言”(Structured Query Language)。...

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    在"plsql_day02"这个压缩包文件中,很可能包含了第二天学习PL/SQL时的一些示例代码。这些代码可能涉及到以下知识点: 1. **变量声明**:在PL/SQL中,我们首先需要声明变量来存储数据,比如`DECLARE`关键字用于定义...

    PL/SQL 学习课程

    在"PL/SQL 学习课程"这个资料中,你将有机会深入理解并掌握这一强大的工具。为期一周的培训,将带你逐步走进PL/SQL的世界,了解其核心概念和实际应用。作为公司内部的培训资料,这些文档很可能涵盖了从基础到高级的...

    Oracle PL/SQL实战(待续)

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据处理能力与PL的程序设计...通过实践和学习"Oracle PL/SQL实战(待续)"的相关内容,我们可以提升在Oracle环境中解决问题的能力,更好地管理和优化数据库系统。

Global site tag (gtag.js) - Google Analytics