--plsql基本结构
declare
v_Sex number;
v_AuthorCode char(6);
v_Arcount number;
begin
select author_code,sex
into v_AuthorCode,v_Sex from auths where name='阿牛';
if v_Sex=0 then
select count(article_code) into v_Arcount from article
where author_code='A0001';
end if;
end;
--
--记录类型
declare
type A_Record is record( Auhoor_code char(6),username varchar2(10),sex number(1));
v_Author A_Record;
--
--对象类型
create or replace type AuthorObj as object(
Author_code char(6),
Name varchar2(10),
Sex number(1),
birthdate date,
address varchar2(30)
);
---
--常量的定义
declare
sex_male constant int :=1
sex_female constant int :=0;
----
----循环结构
declare
v_loopCounter binary_integer:=1;
begin
loop
insert into table_a(num_col) values(v_loopCounter);
v_loopCounter:=v_loopCounter+1;
exit when v_loopCounter>100;
end loop;
end;
----
---for循环
declare
v_loopCounter binary_integer:=1;
begin v_loopCounter in 1..100
loop
insert into table_a(num_col) values(v_loopCounter);
end loop;
end;
---------------
---------游标
--游标用来查询数据库中的数据(例如select 语句返回的记录),并对 查询的结果进行处理。游标分为显式游标
--和隐式游标两种。通过游标,可以对 查询结果中的数据一条一条进行处理。
declare
v_name varchar2(10);
v_salary number(8,2);
--游标的定义。
cursor c_auths is
select name ,salary from auths;
begin
open c_auths;
loop
--检索一条记录
fetch c_auths into v_name ,v_salary;
--当前所有的记录都被检索出后退循环。
exit when c_auths%notfound;
--对检索的数据进行处理
end loop;
close c_auths;
end;
---------------
---------------无名块实例
set serveroutput on size 1000--设置存储缓冲区大小
declare
v_TypeCode1 varchar2(6):='cc';
v_TypeCode2 varchar2(6):='dd';
v_TypeRemark1 varchar2(15):='Computer';
v_typeRemark2 varchar2(15):='C++Language';
v_OutPut varchar2(15);
begin
insert into type
values(v_TypeCode1,v_TypeRemark1);
values(v_TypeCode2,v_TypeRemark2);
select type_remark
into v_OutPut from type
where type_code=v_TypeCode1;
Dbms_Output.put_line(v_OutPut);
select type_remark
into v_OutPut from type
where type_code=v_TypeCode2;
Dbms_Output.put_line(v_OutPut);
end inserttype;
-----------------------------------
---------------------命名块实例
<<inserttype>>
declare
v_TypeCode1 varchar2(6):='cc';
v_TypeCode2 varchar2(6):='dd';
v_TypeRemark1 varchar2(15):='Computer';
v_typeRemark2 varchar2(15):='C++Language';
v_OutPut varchar2(15);
begin
insert into type
values(v_TypeCode1,v_TypeRemark1);
values(v_TypeCode2,v_TypeRemark2);
select type_remark
into v_OutPut from type
where type_code=v_TypeCode1;
Dbms_Output.put_line(v_OutPut);
select type_remark
into v_OutPut from type
where type_code=v_TypeCode2;
Dbms_Output.put_line(v_OutPut);
end inserttype;--或者是 end <<inserttype>>
---------------------------------
-------定义子程序
--------创建存储过程inserttype
create or replace procedure inserttype as
-------声明在块中要用到的变量
v_TypeCode1 varchar2(6):='cc';
v_TypeCode2 varchar2(6):='dd';
v_TypeRemark1 varchar2(15):='Computer';
v_typeRemark2 varchar2(15):='C++Language';
v_OutPut varchar2(15);
begin
insert into type
values(v_TypeCode1,v_TypeRemark1);
values(v_TypeCode2,v_TypeRemark2);
select type_remark
into v_OutPut from type
where type_code=v_TypeCode1;
Dbms_Output.put_line(v_OutPut);
select type_remark into v_OutPut from type
where type_code=v_TypeCode2;
Dbms_Output.put_line(v_OutPut);
end inserttype;
-----将上例中的关键字declare 改变成关键字create or replace procedure 时候,无名块就变成了存储过程。注意,在end 关键字后必须加上存储过程名。
-------------下面是一个触发器的例子
--创建触发器salary_trigger
create or replace trigger salary_trigger
before insert or update of salary on suths for each row
begin
--如果插入值或者修改值大于10000时候,报告应插入的工资值,并产生异常,退出该触发器
if :new.salary>10000 then
raise_application_error(-200060,'插入的工资应小于10000!');
end if;
end salary_trigger;
--该触发器被创建在auths表上,该触发器确保只有小于10000的值才能插入到salary列中,当向表中插入或者修改一条记录时,触发该触发器。
分享到:
相关推荐
在本"plsql基本语法ppt"中,我们将探讨PL/SQL的一些核心概念和关键语法。 1. **变量声明**: 在PL/SQL中,我们首先需要声明变量来存储数据。变量可以声明为内置数据类型(如NUMBER、VARCHAR2、DATE等)或自定义...
### Oracle PL/SQL基本语法详解 #### 一、PL/SQL简介 PL/SQL (Procedural Language for SQL) 是一种专门为 Oracle 数据库设计的过程化编程语言,它结合了 SQL 的强大功能和过程化编程语言的特点,使得开发人员能够...
标题 基本语法 %type用法,%rowtype用法,TYPE用法 游标的使用 for 循环 loop循环 while循环 if / else 的用法 case 的用法 标题 错误定义 error的设定 exception用法 标题 存储过程及函数 ...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其与PLSQL(Procedural ...它详细讲解了Oracle数据库的基础概念、PLSQL的语法结构以及实际应用,有助于提升对Oracle环境下的程序开发和数据库管理能力。
- 是专用于Oracle服务器,在SQL基础之上,**添加了一些过程化控制语句,叫PLSQL** - 过程化包括有:类型定义,判断,循环,游标,异常或例外处理。。。 - **PLSQL强调过程** ![PLsql图片描述]...
这份手册旨在帮助用户理解和掌握在Oracle环境中进行数据管理和编程的基础知识。 在SQL语法部分,手册涵盖了创建数据库对象的核心语句,如: 1. **CREATE TABLE** 语句:用于创建数据库中的表。你可以定义表的结构...
1. PL/SQL基础语法: PL/SQL由三部分组成:声明部分(Declaration)、执行部分(Execution)和异常处理部分(Exception Handling)。声明部分用于定义变量、常量、游标等;执行部分包含SQL语句和过程逻辑;异常处理...
[PLSQL] PLSQL PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务...此文档包含了PLSQL的常见语法,有助于初学者快速入门
plsql基本语法与相关案例-从小白到明白
"plsql.txt"文件可能包含PL/SQL语法的详细示例和练习,帮助用户掌握PL/SQL的基础和高级特性。基础内容可能包括变量声明、条件控制(IF-THEN-ELSIF-ELSE、CASE语句)、循环(WHILE、FOR循环)、异常处理(BEGIN-...
本资料包“plsql语法编程实例”提供了一系列SQL基础语法和PL/SQL编程实例,对于学习和掌握这一技能非常有帮助。 首先,SQL(Structured Query Language)是关系型数据库管理系统中用于管理和处理数据的标准语言。其...
在实际开发中,掌握PL/SQL语法是数据库管理、数据操作和业务逻辑实现的基础。通过`Sqlhelp.hlp`和`Plshelp.hlp`这样的帮助文件,开发者可以快速查找和理解特定的函数、语法点,提高编程效率。同时,不断实践和学习...
本文将讲述 PLSQL 基础语法,结构和组件、以及如何设计并执行一个 PLSQL 程序。 PLSQL 的优点 ---------------- PLSQL 是一种高性能的基于事务处理的语言,能运行在任何 ORACLE 环境中,支持所有数据处理命令。...
基本语法包括指定表名、列名及其数据类型。例如,`CREATE TABLE Employees (ID INT PRIMARY KEY, Name VARCHAR2(50), Salary NUMBER)`。表可以有各种约束,如NOT NULL(不允许空值)和PRIMARY KEY(主键,确保数据...
语法入门、操作plsql、存储过程、函数、触发器、游标、包、返回类型;一个execle表轻松搞定。
1. **PLSQL基本语法**:PLSQL由声明部分、执行部分和异常处理部分组成。声明部分定义变量、常量、游标等;执行部分包含SQL语句和PLSQL语句;异常处理部分用于捕获和处理运行时错误。 2. **PLSQL块**:包括匿名块、...
1. **PLSQL基础**:了解PLSQL的基本语法结构,包括声明变量、常量、游标、异常处理等。学习如何定义过程(PROCEDURE)、函数(FUNCTION)以及包(PACKAGE)。 2. **SQL语句的使用**:在PLSQL中,你可以嵌入SQL语句...