ORACLE05PLSQL编程基础

合集下载

PLSQL循序渐进全面学习教程(全)

PLSQL循序渐进全面学习教程(全)

PLSQL循序渐进全面学习教程(全)PL/SQL是用于Oracle数据库的编程语言,它结合了SQL语句的数据操作能力和一般编程语言的逻辑控制能力。

PL/SQL循序渐进的全面学习教程将帮助你逐步学习和掌握PL/SQL的各个方面。

1.简介和基础知识:-PL/SQL的概念和背景-PL/SQL的开发工具和环境-PL/SQL和SQL的关系-PL/SQL的基本语法和数据类型2.变量和常量:-PL/SQL变量的声明和使用-不同类型的变量和数据类型-常量的定义和使用3.控制结构:-IF-THEN语句和IF-THEN-ELSE语句-CASE语句的使用-循环语句(FOR循环、WHILE循环)4.异常处理:-异常的概念和分类-异常处理的方法和语句-自定义异常和错误处理5.子程序和函数:-PL/SQL子程序和函数的概念和用途-创建和调用子程序和函数-参数传递和返回值6.游标和结果集:-游标的概念和使用场景-游标的声明、打开、关闭和绑定-使用游标处理结果集和数据集7.触发器:-触发器的概念和作用-创建和使用触发器-触发器的触发事件和触发时机8.包和包体:-包和包体的定义和特点-创建和使用包和包体-包的封装和共享9.过程和函数:-过程和函数的概念和区别-创建和使用过程和函数-过程和函数的编写和调用10.使用PL/SQL开发应用程序:-使用PL/SQL编写数据库操作代码-使用PL/SQL开发业务逻辑-PL/SQL和其他编程语言的集成以上是PL/SQL循序渐进全面学习教程的大纲,你可以根据自己的学习进度逐步深入学习每个主题。

希望这个教程对你学习和掌握PL/SQL编程语言有所帮助!。

Oracle PL SQL 编程手册(SQL大全)

Oracle PL SQL 编程手册(SQL大全)

Oracle PL/SQL 编程手册(SQL大全) 一、SQL PLUS1引言SQL命令以下17个是作为语句开头的关键字:alter drop revokeaudit grant rollback*mit*insert selectment lock updatecreate noaudit validatedelete rename这些命令必须以“;”结尾带*命令句尾不必加分号,并且不存入SQL缓存区。

SQL中没有的SQL*PLUS命令这些命令不存入SQL缓存区define pause#del quit$describe remark/disconnect runaccept document saveappend edit setbreak exit showbtitle get spoolchange help sqlplusclear host startcolumn input timingpute list ttitleconnect newpage undefinecopy---------2数据库查询数据字典TAB用户创建的所有基表、视图和同义词清单DTAB构成数据字典的所有表COL用户创建的基表的所有列定义的清单CATALOG用户可存取的所有基表清单select*from tab;describe命令描述基表的结构信息describe deptselect*from emp;select empno,ename,jobfrom emp;select*from deptorder by deptno desc;逻辑运算符=!=或<>>>=<<=inbetween value1and value2like%_in nullnotno in,is not null谓词in和not in有哪些职员和分析员select ename,jobfrom empwhere job in('clerk','analyst');select ename,jobfrom empwhere job not in('clerk','analyst');谓词between和not between哪些雇员的工资在2000和3000之间select ename,job,sal from empwhere sal between2000and3000;select ename,job,sal from empwhere sal not between2000and3000;谓词like,not likeselect ename,deptno from empwhere ename like'S%';(以字母S开头)select ename,deptno from empwhere ename like'%K';(以K结尾)select ename,deptno from empwhere ename like'W___';(以W开头,后面仅有三个字母)select ename,job from empwhere job not like'sales%';(哪些雇员的工种名不以sales开头)谓词is null,is not null没有奖金的雇员(即mision为null)select ename,job from empwhere m is null;select ename,job from empwhere m is not null;多条件查询select ename,jobfrom empwhere deptno=20and job!='clerk';表达式+-*/算术表达式选择奖金高于其工资的5%的雇员select ename,sal,m,m/sal from empwhere m>.05*salorder by m/sal desc;日期型数据的运算add two days to6-Mar-876-Mar-87+2=8-Mar-87add two hours to6-Mar-876-Mar-87+2/24=6-Mar-87and2hrsadd15seconds to6-Mar-876-Mar-87+15/(24*60*60)=6-Mar-87and15secs列名的别名select ename employee from empwhere deptno=10;(别名:employee)select ename,sal,m,m/sal"C/S RATIO"from empwhere m>.05*salorder by m/sal desc;SQL命令的编辑list or l显示缓冲区的内容list4显示当前SQL命令的第4行,并把第4行作为当前行,在该行号后面有个*。

plsql用法,操作介绍

plsql用法,操作介绍

plsql用法,操作介绍PL/SQL是Oracle数据库中一种重要的编程语言,它提供了强大的数据处理和数据库操作能力。

本文将向大家介绍PL/SQL的用法和操作。

一、PL/SQL基础PL/SQL是一种过程化的编程语言,它可以在Oracle数据库中执行存储过程、函数、触发器和包等对象。

这些对象可以由用户自定义,并在数据库中存储,以供其他用户调用。

PL/SQL提供了丰富的数据类型、控制结构、函数和过程,使得开发者可以方便地编写复杂的数据库操作程序。

二、PL/SQL语法1. 声明语句:在PL/SQL中,需要先声明变量和常量,常见的声明语句有:变量声明(如:变量类型数据类型;),常量声明(如:CONST 常量名数据类型 = 值)。

2. 条件语句:PL/SQL支持多种条件语句,如IF-THEN-ELSE,CASE表达式等。

3. 循环语句:PL/SQL支持FOR循环、WHILE循环和LOOP循环等。

4. 异常处理:PL/SQL提供了异常处理机制,可以捕获和处理运行时出现的错误。

5. 函数和过程:PL/SQL支持定义函数和过程,可以对数据进行操作并返回结果。

三、PL/SQL操作1. 创建存储过程:可以使用CREATE PROCEDURE语句创建存储过程,指定过程的名称、参数和执行逻辑。

2. 调用存储过程:可以使用CALL语句调用存储过程,并传递参数。

3. 创建函数:可以使用CREATE FUNCTION语句创建函数,指定函数的名称、参数和返回值类型。

4. 调用函数:可以使用直接调用函数的方式或通过存储过程调用函数。

5. 创建触发器:可以使用CREATE TRIGGER语句创建触发器,用于在数据插入、更新或删除时触发特定的操作。

6. 修改和删除对象:可以使用ALTER PROCEDURE、DROP PROCEDURE、DROP FUNCTION等语句修改或删除已存在的PL/SQL对象。

四、示例以下是一个简单的PL/SQL程序示例,用于将输入的字符串转换为大写并输出:```plsqlDECLAREv_str VARCHAR2(100);v_upper VARCHAR2(100);BEGIN-- 获取输入字符串:in_str := 'hello world';v_str := :in_str;-- 将字符串转换为大写并输出v_upper := UPPER(v_str);DBMS_OUTPUT.PUT_LINE('转换后的字符串为: ' || v_upper);END;```在上述示例中,我们使用了DECLARE语句声明了两个变量v_str 和v_upper,分别用于存储输入的字符串和转换后的结果。

Oracle数据库实验-PLSQL游标、过程、函数、包的使用

Oracle数据库实验-PLSQL游标、过程、函数、包的使用

Oracle数据库实验-PLSQL游标、过程、函数、包的使用Oracle数据库基础实验5 PL/SQL游标、过程、函数、包的使用【实验学时】2学时【实验目的】1.了解PL/SQL语言中显式游标和隐式游标的概念和属性。

2.了解显式游标和隐式游标的差异。

3.掌握PL/SQL中cursor for循环的使用方法。

4.学会在PL/SQL程序中使用游标来解决实际问题。

5.学会在PL/SQL程序中进行异常处理的方法。

6.练习在PL/SQL中自定义异常。

7.理解过程和函数的作用。

8.学会编写过程、函数、包,并加以调用。

【实验内容】1.用显式游标编写程序,程序的功能是:计算每一个部门的平均工资。

注意异常的处理(例如,分母为0的异常)。

已写入文件afiedt.buf1 declare2 cursor c_dept is select * from dept order by deptno;3 cursor c_emp(p_dept emp.deptno%type)is selectename,sal from emp where deptno=p_dept4 order by ename;5 r_dept dept%rowtype;6 v_ename emp.ename%type;7 v_salary emp.sal%type;8 v_tot_salary emp.sal%type;9 begin10 open c_dept;11 loop12 fetch c_dept into r_dept;13 exit when c_dept%notfound;14dbms_output.put_line('department:'||r_dept.deptno||'-'||r_de pt.dname);15 v_tot_salary:=0;16 open c_emp(r_dept.deptno);17 loop18 fetch c_emp into v_ename,v_salary;19 exit when c_emp%notfound;20dbms_output.put_line('name:'||v_ename||'salary:'||v_salary);21 v_tot_salary:=v_tot_salary+v_salary;22 end loop;23 close c_emp;24 dbms_output.put_line('total salary fordept:'||v_tot_salary);25 end loop;26 close c_dept;27* end;SQL> /PL/SQL 过程已成功完成。

第五章理论课使用PLSQL

第五章理论课使用PLSQL

《Oracle数据库应用》理论课使用PL/SQL⏹本章技能目标◆理解PL/SQL 功能和特点◆了解数据类型及其用法◆理解逻辑比较◆理解控制结构◆掌握错误处理1.PL/SQL 简介PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言。

PL/SQL 是对SQL 的扩展。

PL/SQL支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构。

PL/SQL可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑。

PL/SQL与Oracle 服务器和Oracle 工具紧密集成,具备可移植性、灵活性和安全性。

1.1PL/SQL 的优点PL/SQL是一种可以移植的高性能事务处理语言,它支持SQL和面向对象编程,提供了良好的性能和高效的处理能力。

PL/SQL的优点包括:支持SQLSQL是访问数据库德标准语言,通过使用SQL命令,用户可以轻松地操作存储在关系数据库中的数据。

在PL/SQL 中可以使用:数据操纵命令,事务控制命令,游标控制,SQL 函数和SQL 运算符和伪列。

PL/SQL还支持动态SQL,这种高级的编程技术使应用程序更加灵活,可以在程序运行过程中动态构造和运行各种SQL命令。

支持面向对象编程(OOP)面向对象编程以对象为中心,对象是构建面向对象应用程序的基本部分。

使用OOP开发应用程序大大减少了建立复杂应用程序所需的成本和时间。

对象类型是面向对象的理想建模工具,允许属于不同组的开发人员同时开发软件组件。

PL/SQL全面支持面向对象的编程。

2可移植性,可运行在任何操作系统和平台上的Oralce 数据库使用PL/SQL 编写的应用程序可移植到安装任何操作系统或平台的Oracle 服务器上,还可以编写可移植程序库,在不同的环境中重用。

更佳的性能,PL/SQL 经过编译执行 SQL 是一种非过程语言,在此语言中一次只能执行一条语句,因此在连续的语句之间没有关联。

plsql使用技巧

plsql使用技巧

plsql使用技巧PL/SQL是Oracle数据库的一种编程语言,可以用于编写存储过程、触发器、函数等程序。

本文将从以下几个方面介绍PL/SQL的使用技巧:一、变量和常量的使用1.1 变量的定义在PL/SQL中,可以使用DECLARE语句来定义变量。

例如:DECLAREv_name VARCHAR2(100);BEGINv_name := 'John';END;1.2 常量的定义在PL/SQL中,可以使用CONSTANT关键字来定义常量。

例如:DECLAREc_pi CONSTANT NUMBER := 3.1415926;BEGINNULL;END;1.3 变量和常量的命名规则在PL/SQL中,变量和常量的命名规则与其他编程语言类似。

变量和常量的名称必须以字母开头,并且只能包含字母、数字和下划线。

二、条件语句的使用2.1 IF语句IF语句用于根据条件执行不同的代码块。

例如:DECLAREv_age NUMBER := 18;BEGINIF v_age >= 18 THENDBMS_OUTPUT.PUT_LINE('You are an adult.');ELSEDBMS_OUTPUT.PUT_LINE('You are a minor.');END IF;END;2.2 CASE语句CASE语句用于根据不同情况执行不同代码块。

例如:DECLAREv_day_of_week NUMBER := 5;BEGINCASE v_day_of_weekWHEN 1 THEN DBMS_OUTPUT.PUT_LINE('Monday');WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('Tuesday');WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('Wednesday'); WHEN 4 THEN DBMS_OUTPUT.PUT_LINE('Thursday'); WHEN 5 THEN DBMS_OUTPUT.PUT_LINE('Friday');ELSE DBMS_OUTPUT.PUT_LINE('Weekend');END CASE;END;三、循环语句的使用3.1 FOR循环FOR循环用于执行一组代码块一定次数。

PLSQL学习(一) 基础知识

PLSQL学习(一) 基础知识

PLSQL学习(一) 基础知识很久以前自己整理的PLSQL一些基础知识,翻出来看看都是比较基础的内容,还是放上来好了。

参考的资料是《PL/SQL用户指南与参考》中译版,觉得这是一部很不错的入门书,感谢把这本书翻译出来的网友。

1、乘方的不同应用:在SQL中乘方只能使用函数Power(a,b)来计算但在PLSQL中可直接使用a**b表示2、赋值语句Returning:insert into t1 values(90,'SERVICE','BEIJING')Returning rowid,name into row_id,info;注:只限insert、update、delete一条记录时进行赋值3、自定义参数——&:可SQL和PLSQL中均可使用自定义参数,即需要自己输入值的参数select * from ldcom where comcode=&a andname=&b;PLSQL:declare i int := &a; n int := &b;4、绑定变量的使用:可使用绑定变量的办法提高SQL效率SQL> variable x number ;SQL> exec :x := 8600 ;SQL> select * from ldcom where comcode= :x ;注:PLSQL中的declare即隐士绑定,无需再申明可用Print查看绑定变量 SQL> print x;也可使用查询SQL> select :x from dual;实际的简单应用:variable x number;declarev_date date;beginfor i in1.. 10loop:x := i;select sysdate+:x into v_date from dual;dbms_output.put_line(v_date);end loop;end;/在execute immediate中的应用:declarev_x t1.num%type;beginexecute immediate'update t1 set num=8888 where id=:a returning num into :b'using2returning into v_x;dbms_output.put_line(v_x);end;注意returning的返回值在动态SQL中的操作格式5、%TYPE和%ROWTYPE的区别:%TYPE针对某一字段类型(数组也是单一的类型)%ROWTYPE针对某一整表的类型(游标也是整表)6、计数循环的逆序法:for i in reverse10.. 100loop注意reverse的位置不要记错7、一般的游标使用法:1、游标的正常使用需要四步①定义游标cursor c2(dept_no number default10) is----注意定义dept_no的方法select name,agentcode from laagent where rownum <= dept_no;②打开游标open c3(dept_no =>20); ----可以重新定义dept_no③提取游标数据fetch c2 into dept_name,dept_loc;----字符类型、个数相等fetch c3 into deptrec;----deptrec为rowtypeexit when c3%notfound;④关闭游标CLOSE c3;⑤游标属性%FOUND--布尔型属性,当最近一次读记录时成功返回,则值为TRUE;%NOTFOUND--布尔型属性,与%FOUND相反;%ISOPEN--布尔型属性,当游标已打开时返回TRUE;%ROWCOUNT--数字型属性,返回已从游标中读取的记录数。

plsql使用教程

plsql使用教程

plsql使用教程PL/SQL是Oracle数据库的过程式编程语言,它结合了SQL的强大查询能力和程序设计语言的灵活性。

以下是一个简单的PL/SQL使用教程:1. 定义变量在PL/SQL中,可以使用DECLARE语句来定义变量。

例如:DECLAREnum INTEGER;name VARCHAR2(50);2. 使用SELECT查询数据可以使用SELECT语句从表中检索数据。

例如:SELECT * INTO num, name FROM employees WHERE employee_id = 100;3. 使用IF-THEN-ELSE进行条件判断PL/SQL提供了IF-THEN-ELSE语句来进行条件判断。

例如:IF num > 0 THENDBMS_OUTPUT.PUT_LINE('Number is positive');ELSEDBMS_OUTPUT.PUT_LINE('Number is negative');END IF;4. 使用FOR循环可以使用FOR循环来对一个集合进行迭代。

例如:FOR i IN 1..10 LOOPDBMS_OUTPUT.PUT_LINE('The value of i is: ' || i);END LOOP;5. 创建存储过程可以使用CREATE PROCEDURE语句来创建存储过程。

例如:CREATE PROCEDURE get_employee_details (p_employee_idIN NUMBER) ISv_employee_name VARCHAR2(50);BEGINSELECT employee_name INTO v_employee_name FROM employees WHERE employee_id = p_employee_id;DBMS_OUTPUT.PUT_LINE('Employee name is: ' ||v_employee_name);END;6. 调用存储过程可以使用EXECUTE语句来调用存储过程。

第7章 PLSQL编程基础

第7章 PLSQL编程基础

域。
7.2 变量与常量
标识符定义必须要满足以下规则:
必须以字母开头,长度不能超过30个字符。 标识符中不能包含减号“-”和空格。 Oracle标识符不区分大小写。 标识符不能是SQL保留字。
7.2.2 PL/SQL中的数据类型
1.标量数据类型
数值类型:存储的数据为数字,用此数据类型 存储的数据可用于计算。包括: BINARY_INTEGER、NUMBER、 PLS_INTEGER。
例7.9 使用scott方案下的emp和dept表查询职工编 号是7902的员工的姓名、工作和所在部门。 DECLARE e_name VARCHAR2(10); e_job VARCHAR2(9); e_dname VARCHAR2(14); BEGIN SELECT ename,job,dname INTO e_name,e_job,e_dname FROM scott.emp e INNER JOIN scott.dept d ON e.deptno=d.deptno WHERE empno=7902; dbms_output.put_line('该职工的姓名、工作、部门分 别是:'||e_name||' '||e_job||' '||e_dname); END;
• NUMBER(p,s)用来存储正负整数、分数和浮点型数 据,有38位的精确度,p表示精度,用于指定数字的 总位数;s用于指定小数点后的数字位数。
字符类型:用于存储字符串或字符数据。包括 :CHAR、VARCHAR2、LONG、RAW、 LONG RAW。
• PL/SQL的数据类型与SQL数据类型的长度有所不同 ,如表7-1所示。
若定义变量时指定了NOT NULL属性,那 么表示该变量在任何时刻都不允许为空, 因此在定义变量的同时也必须为变量赋值 ,否则发生错误,如下面的代码所示。 DECLARE varOne NUMBER NOT NULL; BEGIN varOne :=10; END;

plsql 使用手册

plsql 使用手册

plsql 使用手册(最新版)目录1.PL/SQL简介2.PL/SQL的基本语法3.数据类型与变量4.控制结构5.函数与过程6.触发器与存储过程7.异常处理8.PL/SQL与SQL的交互9.PL/SQL的应用实例10.PL/SQL的优缺点及发展前景正文【PL/SQL 简介】PL/SQL(Procedural Language/Structured Query Language)是一种过程式编程语言,它是为了与 SQL(结构化查询语言)协同工作而设计的。

PL/SQL 通常用于 Oracle 数据库中,用于编写存储过程、触发器、函数等,从而实现对数据库的高级操作和控制。

【PL/SQL 的基本语法】PL/SQL的基本语法包括变量声明、数据类型、控制结构(条件语句、循环语句等)、函数与过程、触发器与存储过程等。

【数据类型与变量】PL/SQL的数据类型与SQL的数据类型基本一致,包括数字类型、字符串类型、日期类型等。

在PL/SQL中,需要先声明变量,再进行使用。

【控制结构】PL/SQL的控制结构包括条件语句(IF-THEN、IF-THEN-ELSE)、循环语句(WHILE、FOR)等,用于实现复杂的逻辑控制。

【函数与过程】函数是一种返回某个值的过程,过程则是一种不返回值的操作。

在PL/SQL 中,函数与过程可以通过参数传递数据,并返回结果。

【触发器与存储过程】触发器是一种在对表执行 INSERT、UPDATE 或 DELETE 操作时自动执行的存储过程。

存储过程是一组预先编译的 SQL 语句,可以实现复杂的业务逻辑。

【异常处理】PL/SQL中可以处理异常,通过EXCEPTION和WHEN子句可以捕获和处理异常情况。

【PL/SQL 与 SQL 的交互】PL/SQL可以与SQL进行交互,例如在PL/SQL过程中调用SQL语句,或者在SQL语句中调用PL/SQL过程。

【PL/SQL 的应用实例】一个典型的PL/SQL应用实例是编写一个存储过程,用于实现数据的增、删、改、查等操作。

plsql使用方法

plsql使用方法

plsql使用方法PL/SQL是Oracle数据库的一种编程语言,它是Procedural Language/Structured Query Language(过程性语言/结构化查询语言)的缩写。

PL/SQL的主要作用是用于开发Oracle数据库应用程序,它可以在Oracle数据库内部直接执行存储过程、函数以及触发器等。

PL/SQL的使用方法1、PL/SQL语言的基本元素:变量、常量、运算符、条件语句和循环语句。

2、PL/SQL程序的结构:声明段、执行段和异常处理段。

3、定义变量和常量:DECLAREx NUMBER := 10; --定义变量x,并初始化为10y CONSTANT NUMBER := 20; --定义常量y,并初始化为20 BEGINNULL;END;/4、条件语句:IF boolean_expression THEN--执行一系列语句ELSEIF boolean_expression THEN--执行一系列语句ELSE--执行一系列语句END IF;5、循环语句:FOR loop_index IN [REVERSE] lower_limit..upper_limit LOOP --执行一系列语句END LOOP;WHILE boolean_expression LOOP--执行一系列语句END LOOP;LOOP--执行一系列语句EXIT WHEN boolean_expression; END LOOP;6、异常处理:BEGIN--执行一系列语句EXCEPTIONWHEN exception_name1 THEN --处理异常方式1WHEN exception_name2 THEN --处理异常方式2WHEN OTHERS THEN--处理所有其他异常情况END;7、使用游标:DECLARECURSOR cursor_name ISSELECT ...FROM ...WHERE ...;local_variable datatype;BEGINOPEN cursor_name;LOOPFETCH cursor_name INTO local_variable;EXIT WHEN cursor_name%NOTFOUND;--执行一系列语句END LOOP;CLOSE cursor_name;END;8、使用存储过程和函数:CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ]ISvariable datatype;...BEGIN--执行一系列语句EXCEPTION--处理异常END;CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ]RETURN datatypeISvariable datatype;...BEGIN--执行一系列语句EXCEPTION--处理异常END;PL/SQL是Oracle数据库中非常实用的编程语言,它可以帮助我们开发高效、可靠和可重用的应用程序。

oracle PLSQL 语法详细手册

oracle PLSQL 语法详细手册

SQL PL/SQL语法手册目录第一部分 SQL语法部分 ...................................................................................................... 错误!未定义书签。

一、CREATE TABLE语句 .................................................................................. 错误!未定义书签。

二、CREATE SEQUENCE语句 .............................................................................. 错误!未定义书签。

三、CREATE VIEW语句...................................................................................... 错误!未定义书签。

四、INSERT语句:.............................................................................................. 错误!未定义书签。

五、UPDATE语句:.............................................................................................. 错误!未定义书签。

六、DELETE语句:.............................................................................................. 错误!未定义书签。

PLSQL学习简易快速入门

PLSQL学习简易快速入门

PLSQL学习简易快速入门课程一 PL/SQL 基本查询与排序本课重点:1、写SELECT语句进行数据库查询2、进行数学运算3、处理空值4、使用别名ALIASES5、连接列6、在SQL PLUS中编辑缓冲,修改SQL SCRIPTS7、ORDER BY进行排序输出。

8、使用WHERE 字段。

一、写SQL 命令:不区分大小写。

SQL 语句用数字分行,在SQL PLUS中被称为缓冲区。

最后以;或 / 结束语句。

也可以用RUN来执行语句二、例1:SQL> SELECT dept_id, last_name, manager_id FROM s_emp;2:SQL> SELECT last_name, salary * 12, commission_pct FROM s_emp;对于数值或日期型的字段,可以进行相应的四则运算,优先级与标准的高级语言相同。

SQL> SELECT last_name, salary, 12 * (salary + 100) FROM s_emp;三、列的别名ALIASES:计算的时候特别有用;紧跟着列名,或在列名与别名之间加“AS”;如果别名中含有SPACE,特殊字符,或大小写,要用双引号引起。

例(因字体原因,读者请记住:引号为英文双引号Double Quotation):SQL> SELECT last_name, salary, 12 * (salary + 100) ”Annual Salary” FROM s_emp;四、连接符号:||连接不同的列或连接字符串使结果成为一个有意义的短语:SQL> SELECT first_name || ’’ || last_name || ’, ’|| title ”Employees” FROM s_emp SQL> select divid ||' '|| divname from pub_t_division_test wheresuperid='001'效果如下图:五、管理NULL值:SQL> SELECT last_name, title, salary * NVL(commission_pct,0)/100 COMM FROMs_emp;此函数使NULL转化为有意义的一个值,相当于替换NULL。

Oracle_PLSQL教程-第五章

Oracle_PLSQL教程-第五章
• REPLACE 选项删除并重新创建包体 • 仅在包体中定义的标识符是私有结构在包的外部不可见 • 所有的私有结构必须在它们被用于公共结构之前被声明
5­11
Copyright © Oracle Corporation, 2001. All rights reserved.
创建包体
为了创建包,在包体中定义所有公共和私有结构。
§ 如果包体已经存在,指定 REPLACE 选项。 § 在包体中子程序的定义顺序很重要:你必须在一个变量被引用之前先声明它,
同样,在一个私有子程序被调用之前你必须先声明它。通常的做法是在包体中
先定义私有变量和子程序,后定义公共子程序。
语法解说
在包中定义所有公共和私有过程与函数。
参数
说明
package_name
Oracle PL/SQL 编程 5­4
第五章 创建包
包声明 包体
引用包对象
过程 A 声明
公共变量 公共过程
过程 B 声明
私有变量 私有过程
过程 A 定义
公共过程
局部变量
5­5
Copyright © Oracle Corporation, 2001. All rights reserved.
包的开发 (续) 结构的可见性 Local
第五章 创建包
翻译:陈拓 chentuo@ 2006 年 6 月 16 日
创建包
Copyright © Oracle Corporation, 2001. All rights reserved.
进度表:
时间 40 分钟练习 总共
Oracle PL/SQL 编程 5­1
• REPLACE 选项删除并重新创建包声明 • 在包声明中的变量声明默认情况下被初始化 NULL • 在包声明中的所有被声明的结构对于已授权的用户都是

PLSQL基础入门教程-必看

PLSQL基础入门教程-必看

PL/SQL程序设计目录第一章PL/SQL 程序设计简介 (4)§1.2SQL与PL/SQL (4)§1.2.1 什么是PL/SQL? (4)§1.2.1 PL/SQL的好处 (4)§1.2.2 PL/SQL 可用的SQL语句 (5)§1.3运行PL/SQL程序 (5)第二章PL/SQL块结构和组成元素 (6)§2.1PL/SQL块 (6)§2.2PL/SQL结构 (6)§2.3标识符 (6)§2.4PL/SQL变量类型 (7)§2.4.1 变量类型 (7)§2.4.2 复合类型 (9)§2.4.3 使用%ROWTYPE (11)§2.4.4 LOB类型* (11)§2.4.5 Bind 变量 (11)§2.4.6 INDEX BY TABLES (12)§2.4.7 数据类型的转换* (13)§2.5运算符和表达式(数据定义) (13)§2.5.1 关系运算符 (13)§2.5.2 一般运算符 (13)§2.5.3 逻辑运算符 (14)§2.6变量赋值 (14)§2.6.1 字符及数字运算特点 (14)§2.6.2 BOOLEAN 赋值 (14)§2.6.3 数据库赋值 (14)§2.6.4 可转换的类型赋值 (15)§2.7变量作用范围及可见性 (15)§2.8注释 (16)§2.9简单例子 (17)§2.9.1 简单数据插入例子 (17)§2.9.2 简单数据删除例子 (17)第三章PL/SQL流程控制语句 (18)§3.1条件语句 (18)§3.2CASE表达式 (19)§3.3循环 (19)§3.3标号和GOTO (21)§3.4NULL语句 (21)第四章游标的使用 (23)§4.1游标概念 (23)§4.1.1 处理显式游标 (23)§4.1.2 处理隐式游标 (26)§4.1.3 游标修改和删除操作 (27)第五章异常错误处理 (29)§5.1异常处理概念 (29)§5.1.1 预定义的异常处理 (29)§5.1.2 非预定义的异常处理 (30)§5.1.3 用户自定义的异常处理 (31)§5.1.4 用户定义的异常处理 (32)§5.2异常错误传播 (33)§5.2.1 在执行部分引发异常错误 (33)§5.2.2 在声明部分引发异常错误 (34)§5.3异常错误处理编程 (34)§5.4在PL/SQL中使用SQLCODE,SQLERRM (35)第六章存储函数和过程 (36)§6.1引言 (36)§6.2创建函数 (36)§6.3存储过程 (39)§6.3.1 创建过程 (39)§6.3.2 调用存储过程 (40)§6.3.3 开发存储过程步骤 (42)§6.3.4 与过程相关数据字典 (43)第七章包的创建和应用 (44)§7.1引言 (44)§7.2包的定义 (44)§7.3包的开发步骤 (45)§7.4包定义的说明 (45)§7.5子程序重载 (48)§7.6删除过程、函数和包 (50)§7.7包的管理 (50)第八章触发器 (51)§8.1触发器类型 (51)§8.1.1 DML触发器 (51)§8.1.2 替代触发器 (51)§8.1.3 系统触发器 (51)§8.2创建触发器 (51)§8.2.1 触发器触发次序 (53)§8.2.2 创建DML触发器 (53)§8.2.3 创建替代(Instead_of)触发器 (54)§8.2.3 创建系统事件触发器 (54)§8.2.4 系统触发器事件属性 (55)§8.2.5 使用触发器谓词 (56)§8.2.6 重新编译触发器 (56)§8.3删除和使能触发器 (56)§8.4触发器和数据字典 (57)§8.5数据库触发器的应用举例 (57)第一章PL/SQL 程序设计简介PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

❖PL/SQL接受用户输入值
用法:
e_empno emp.empno%type:=&empno;
select ename,sal into r_emp.ename, r_emp.sal from emp where empno=&empno;
综合举例:
– 输入半径求得圆的面积。 – 输入员工编号获得该员工的编号和职位 – 输入员工姓名获得该员工的编号和职位
在给尚未初始化的表或数组赋值时出现
❖PL/SQL异常—预定义异常
CURSOR_ALREADY_OPEN
在用户试图重新打开已经打开的游标时出现。在 重新打开游标前必须先将其关闭
INVALID_CURSOR
在执行非法游标运算(如打开一个尚未打开的游 标)时出现
❖PL/SQL异常—预定义异常
VALUE_ERROR
begin … raise myexception1 ; 在需要的地方用raise抛出异常 … raise myexception2 ;
exception when myexception1 then 在exception部分定义异常信息 ……. when myexception2 then …….
end;
❖PL/SQL异常—引发应用程序错 误语法:
RAISE_APPLICATION_ERROR(error_number,error_ message);
error_number:表示用户为异常指定的编号。该编号必 须是介于-20000和-20999之间的负整数。
error_message:表示用户为异常指定的消息文本。消 息长度可达2048字节。错误消息是与error_number相关 联的文本。
while 循环条件 loop …(循环体) end loop;
❖PL/SQL循环结构
FOR
for 循环条件 loop …(循环体) end loop;
求1到100的和。
❖PL/SQL异常—预定义异常
NO_DATA_FOUND
在表中不存在请求的行时出现。此外,当程序引 用已经删除的元素时,也会引发此异常
创建常量
➢ 语法:
常量名 CONSTANT 数据类型:=值
举例:
pi CONSTANT number:=3.14;
❖PL/SQL变量的赋值
变量的赋值
➢ 语法:
变量名 数据类型:=值 变量名:=值(之前已定义过变量) select…into 变量名
举例:
i int:=5; i int; i:=5; select count(*) into icount from emp; 综合举例:求圆面积
异常处理语句部分] end;
❖PL/SQL数据类型
PL/SQL数据类型
➢int ,整型 ➢number,数字型 ➢varchar2,字符型 ➢date,日期型 ➢boolean,布尔型
❖PL/SQL变量的定义
创建变量
➢语法:
变量名 数据类型
举例:
stuname varchar2(100);
❖PL/SQL常量的定义
❖PL/SQL分支结构
接收一个部门号,根据不同的部门号,为其 下面的员工增加相应的sal。
如果员工编号为7369,则输出员工姓名、薪 水。(如果不是则输出“不是我所找的人!” )
❖PL/SQL循环结构
LOOP
loop 计数器 exit when 退出条件; …(循环体) end loop;
WHILE
TOO_MANY_ROWS
在执行SELECT INTO语句后返回多行时出现
ZERO_DIVIDE
除数为零
❖PL/SQL异常—预定义异常
ACCESS_INTO_NULL
在未初始化对象时出现
CASE_NOT_FOUND
在CASE语句中的选项与用户输入的数据不匹配 时出现
COLLECTION_IS_NULL
❖PL/SQL分支结构
IF…THEN END IF;
IF…THEN … ELSE … END IF;
❖PL/SQL分支结构
IF…THEN ELSIF…THEN ELSIF…THEN ELSE END IF;
❖PL/SQL分支结构
CASE selector WHEN…THEN… WHEN…THEN… ELSE… END CASE;
❖PL/SQL数据对象类型
综合举例:输出编号为7369的部门编号、 姓名。
❖PL/SQL接受用户输入值
语法:
➢ &参数名,参数名是弹出的对话框上显示的文字 ,当有参数输入后则会替换’&参数名‘,例如 ,empno=&编号,输入7369之后,则在程序运行 时即为empno=7369
➢ 注意:如果接受的参数不是数字型或整型,那么 要用‘ ’,引起来。
在产生大小限制错误时出现。例如,变量中的列 值超出变量的大小
❖PL/SQL异常—预定义异常
用法:
declare begin exception
when 预定义异常名 then …….
when 预定义异常名 then …….
end;
❖PL/SQL异常—自定义异常
用法:
declare myexception1 exception; 先定义一个 exception类型的变量; myexception2 exception;
ORACLE
第五讲 PL/SQL编程基础
本章目标
♦ 掌握PL/SQL数据类型及变量常量的定义 ♦ 掌握对象类型的赋值和使用 ♦ 掌握接收用户输入值及使用 ♦ 掌握分支结构 ♦ 掌握循环结构
❖PL/SQL程序块基本。
begin
功能语句部分
[exception
RAISE_APPLICATION_ERROR过程既可以在PL/SQL程 序的可执行部分中使用,也可以在其异常部分中使用。在 调用此过程时,将同时显示仪错误编号和消息。
❖PL/SQL异常—引发应用程序错 误用法:
❖PL/SQL数据对象类型
字段变量-%type
➢ 定义:id emp.empno%type;
记录变量-%rowtype
➢ 定义:r_emp emp%rowtype;
赋值:
select empno into id from emp where ename=‘SMITH’;
select * into r_emp from emp where empno=‘7369’;
相关文档
最新文档