Oracle_10g_PLSQL程序设计
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 DEVELOPER连接64位ORACLE11G
PLSQL developer连接64位oracle11G默认情况下,PL/SQL Developer是无法连接到数据库的,原因是:PL/SQL DEVELOPER是沒办法执行64位元的OCI.DLL,可是Win7X64又只能装64位元Oracle client X64。
变成要多下载一个Oracle Instant client X32oci.dll是64位的,而PL/SQL developer只有32位的,在使用64位oci.dll文件时出错。
1.下载instantclient-basic-nt到Oracle官网下载Instant Client for Microsoft Windows(32-bit)下载后配置文件如下图2.解压指定位置选择instantclient-basic-nt-11.2.0.3.0,下载后解压到目录。
(本人的路径为:D:\ProgramFiles\instantclient_11_2)解压后的目录为安装PL/SQL Development由于提供的是绿色版的,直接打开文件夹点击此图标即可登入配置PL/SQL Deverloper登陆非登录状态下进入PL/SQL developer,进入工具->首选项->连接,在连接中设置Oracle主目录和OCI库,其中Oracle主目录设置为InstantClient的解压目录(D:\ProgramFiles\instantclient_11_2本人的路径),OCI库设置为该目录下的oci.dll(D:\ProgramFiles\instantclient_11_2\oci.dll本人的路径)。
设置完成后界面如下保存好后可尝试登录,如果出现这样的报错ORA-12154:TNS:could not resolve the connect identifier specified.,此时你就得需要去配置环境变量:控制面板\所有控制面板项\系统,然后在左边有一个“高级系统设置”,点击后即可得到如下:点击环境变量,得到:系统变量中的新建,设置好变量名与变量名:(变量名就是你oracle的路径:本人的路径为:C:\app\Administrator\product\11.2.0\dbhome_1)关键找到红色部分即可;再次登录时可能会报错:NLS_LANG在客户端不能被确定字符集转变将造成不可预期的后果此时还得多配置一条环境变量:变量名与变量值与图片上一样即可。
Oracle_PLSQL教程-第十章
翻译:陈拓 chentuo@2006 年 6 月16 日更多触发器概念Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题80 分钟 讲演40 分钟 练习120 分钟 总共目标完成本课程后, 您应当能够:• 创建附加的数据库触发器• 解释触发器管理规则• 实现触发器102 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标在本课中,你将学习怎样创建更多地数据库触发器并学习规则触发器。
你还将学习许多应用程序触发器。
创建数据库触发器• 触发用户事件:– CREATE, ALTER 或 DROP– Logging on 或 off• 触发数据库或系统事件:– Shutting down 或 starting up 数据库– 一个指定的错误 (或任何错误) 出现103 Copyright © Oracle Corporation, 2001. All rights reserved.创建数据库触发器在编码触发器体之前,确定触发器的组建。
在系统事件上的触发器可以被定义在数据库或方案级别。
例如,一个数据库 shutdown 触发器 被定义在数据库级别。
在数据定义语言 (DDL) 语句上的触发器,或一个用户登录登出,即可以被 定义为数据库级别也可以被定义为方案级别。
在 DML 语句上的触发器被定义在指定的表或一个视图上。
一个定义在数据库级别的触发器对所有用户触发, 一个定义在方案或表级别的触发器只有当触 发级别包括该方案或表时才触发。
触发事件可能引起触发器触发:· 在数据库或方案中的一个对象上一个数据定义语句· 一个指定的用户 (或任何用户) 登录或登出· 一个数据库关闭或启动· 一个指定的或任何错误出现在 DDL 语句上创建触发器• 语法:CREATE [OR REPLACE] TRIGGER trigger_nametiming[ddl_event1 [OR ddl_event2 OR ...]]ON {DATABASE|SCHEMA}trigger_body104 Copyright © Oracle Corporation, 2001. All rights reserved.创建触发器语法DDL 事件 可能的值CREATE无论何时一个 CREATE 语句添加一个新的数据库对象到数据字典中时,引起 Oracle 服务器激发触发器ALTER无论何时一个 ALTER 语句修改一个在数据字典中的数据库对象时,引起 Oracle 服务器激发触发器DROP无论何时一个 DROP 语句删除一个在数据字典中的数据库对象时,引起Oracle 服务器激发触发器触发器体代表一个完整的 PL/SQL 块。
OracleDatabase10g数据库安装及配置教程
OracleDatabase10g数据库安装及配置教程Oracle安装配置教程分享给⼤家供⼤家参考,具体内容如下1、安装Oracle 版本:Oracle Database 10g Release 2 (10.2.0.1)下载地址:安装设置:1)这⾥的全局数据库名即为你创建的数据库名,以后在访问数据,创建“本地Net服务名”时⽤到;2)数据库⼝令在登录和创建“本地Net服务名”等地⽅会⽤到。
2、创建“本地Net服务名”1)通过【程序】-》【Oracle - OraDb10g_home1】-》【配置和移植⼯具】-》【Net Configuration Assistant】,运⾏“⽹络配置助⼿”⼯具:2)选择“本地 Net 服务名配置”:3)这⾥的“Net 服务名”我们输⼊安装数据库时的“全局数据库名”:4)主机名我们输⼊本机的IP地址:5)测试数据库连接,⽤户名/密码为:System/数据库⼝令(安装时输⼊的“数据库⼝令”):默认的⽤户名/密码错误:更改登录,输⼊正确的⽤户名/密码:测试成功:3、PLSQL Developer 连接测试输⼊正确的⽤户名/⼝令:成功登陆:数据库4、创建表空间打开sqlplus⼯具:sqlplus /nolog连接数据库:conn /as sysdba创建表空间:create tablespace camds datafile 'D:\oracle\product\10.2.\oradata\camds\camds.dbf' size 200m autoextend on next 10m maxsize unlimited;5、创建新⽤户运⾏“P/L SQL Developer”⼯具,以DBA(⽤户名:System)的⾝份登录:1)新建“User(⽤户):2)设置⽤户名、⼝令、默认表空间(使⽤上⾯新建的表空间)和临时表空间:3)设置⾓⾊权限:4)设置”系统权限“:5)点击应⽤后,【应⽤】按钮变灰,新⽤户创建成功:6)新⽤户登录测试:输⼊新⽤户的“⽤户名/⼝令”:新⽤户“testcamds”成功登陆:6、导⼊导出数据库先运⾏cmd命令,进⼊命令⾏模式,转到下⾯的⽬录:D:\oracle\product\10.2.0\db_1\BIN【该⽬录下有exp.exe⽂件】1)导⼊命令语法:imp userid/pwd@sid file=path/file fromuser=testcamds touser=userid命令实例:imp testcamds/123@camds file=c:\testcamds fromuser=testcamds touser=testcamds导⼊结果:2)导出:命令语法:exp userid/pwd@sid file=path/file owner=userid命令实例:exp testcamds/123@camdsora file=c:\testcamds owner=testcamds 导⼊结果://创建临时表空间create temporary tablespace zfmi_temptempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'size 32mautoextend onnext 32m maxsize 2048mextent management local;//tempfile参数必须有//创建数据表空间create tablespace zfmiloggingdatafile 'D:\oracle\oradata\zfmi\zfmi.dbf'size 100mautoextend onnext 32m maxsize 2048mextent management local;//datafile参数必须有//删除⽤户以及⽤户所有的对象drop user zfmi cascade;//cascade参数是级联删除该⽤户所有对象,经常遇到如⽤户有对象⽽未加此参数则⽤户删不了的问题,所以习惯性的加此参数//删除表空间前提:删除表空间之前要确认该表空间没有被其他⽤户使⽤之后再做删除drop tablespace zfmi including contents and datafiles cascade onstraints;//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,⽽未加此参数,表空间删不掉,所以习惯性的加此参数//including datafiles 删除表空间中的数据⽂件//cascade constraints 同时删除tablespace中表的外键参照如果删除表空间之前删除了表空间⽂件,解决办法: 如果在清除表空间之前,先删除了表空间对应的数据⽂件,会造成数据库⽆法正常启动和关闭。
PLSQL Developer 10g 创建、删除表空间、更名
EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK ON;
7) DROP TABLESPACE db_name_ INCLUDING CONTENTS AND DATAFILES; //删除表空间
--测试创建表空间
create tablespace IMSTEST
datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HNORCL\IMTEST.def' size 200M
TEMPORARY TABLESPACE "TEMP" ;
grant connect to PROJECTNAME ;
grant dba to PROJECTNAME ;
grant sysdba to PROJECTNAME ;
--创建无限表空间 SQL代码
CREATE TABLESPACE test DATAFILE 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\TEST1.DBF' SIZE 20000M
extent management local autoallocate
segment space management auto;
CREATE USER PROJECTNAME
IDENTIFIED BY "PROJECTNAME"
DEFAULT TABLESPACE "TBS_PROJECTNAMETEST"
精通 oracle 10g plsql 编程-学习笔记
1.PL/SQL综述本章学习目标,了解如下内容:PL/SQL的功能和作用PL/SQL 的优点和特征;Oracle 10g、Oracle9i 的PL/SQL新特征1.1.SQL简介1.1.1.SQL语言特点SQL语言采用集合操作方式1.1.2.SQL语言分类●数据查询语言(SELECT语句):检索数据库数据。
●数据操纵语言(DML):用于改变数据库数据。
包括insert,update和delete三条语句。
●事务控制语言(TCL):用于维护数据库的一致性,包括commit,rollback和savepoint 三条语句●数据定义语言(DDL):用户建立、修改和删除数据库对象。
●数据控制语言(DDL):用于执行权限授予和收回操作。
包括grant 和revoke两条命令。
1.1.3.SQL 语句编写规则●SQL关键字不区分大小写●对象名和列名不区分大小写●字符值和日期值区分大小写●书写格式随意1.2.PL/SQL简介1.3.Oracle 10G PL/SQL 新特征2.PL/SQL开发工具本章学习目标:学会使用SQL*PLUS学会使用PL/SQL developer;学会使用Procedure Builder。
2.1.SQL*PLUS在命令行运行SQL*PlusSqlplus [username]/[password] [@server]3.PL/SQL 基础学习目标:●了解PL/SQL块的基本结构以及PL/SQL块的分类;●学会在PL/SQL块中定义和使用变量●学会在PL/SQL块中编写可执行语句;●了解编写PL/SQL代码的指导方针;●了解Oracle 10g的新特征——新数据类型BINARY_FLOAT 和BINARY_DOUBLE,以及指定字符串文本的新方法。
3.1.PL/SQL 块简介3.1.1.PL/SQL块结构3.1.2.PL/SQL 块分类匿名块命名块子程序触发器3.2. 定义并使用变量3.2.1.标量变量3.2.2.复合变量3.2.3.参照变量3.2.4.LOB 变量3.2.5.非PL/SQL 变量3.3.编写 PL/SQL 代码3.3.1.PL/SQL 词汇单元分隔符标识符文本(数字文本,字符文本,字符串文本,布尔文本,日期时间文本)注释3.3.2.PL/SQL 代码编码规则标识符命名规则大小写规则代码缩进嵌套块和变量范围PL/SQL中可以使用的SQL函数4.使用SQL语句学习目标:学会使用SELECT语句去完成基本查询功能学会使用INSERT,UPDA TE和DELETE语句去操作数据库数据学会使用COMMIT,ROLLBACK和SA VEPOINT语句去控制事务学会使用SELECT语句去实现各种复杂查询功能(数据分组、连接查询、子查询、层次查询、合并查询等)4.1.使用基本查询处理NULL:函数nvl(expr1,expr2),nvl2(expr1,expr2,expr3)4.2.使用DML语句使用多表插入数据语法:INSERT ALL insert_into_clause [value_clause] subquery;INSERT conditional_insert_clause subquery;示例1:使用ALL 操作符执行多表插入INSERT ALLWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSelect * from emp;示例2:使用FIRST 操作符执行多表插入INSERT FIRSTWHEN deptno=10 THEN INTO dept10WHEN deptno=20 THEN INTO dept20WHEN deptno=30 THEN INTO dept30WHEN job=’CLERK’ THEN INTO clerkELSE INTO otherSELECT * FROM emp;4.3.使用事务控制语句4.3.1.事务和锁4.3.2.提交事务4.3.3.回退事务设置保存点:savepoint a;或者exec dbms_transaction.savepoint(‘a’)取消部分事务Rollback to a;或者Exec dbms_transaction.rollback_savepoint(‘a’)取消全部事务:Rollback; 或者exec dbms_transaction.rollback() 4.3.4.只读事务4.3.5.顺序事务4.4.数据分组4.4.1.分组函数MaxMinAvgSumCountVarianceStddev使用分组函数注意事项:●当使用分组函数时,除了函数Count(*) 之外,其他分组函数都会忽略NULL行。
Oracle中使用PLSQL编写输入员工编号查询员工姓名存储过程实例
存储过程实例
存储过程编写完成后需要编译
程序 树状 列表 窗口
enVar := 0; DBMS_OUTPUT.PUT_LINE('开始查询数据库:'); SELECT EName INTO enVar FROM Scott.Emp WHERE EmpNo=pEmpNo; DBMS_OUTPUT.PUT_LINE('员工名称为:'||enVar); EXCEPTION
代码编辑窗口
存储过程实例-测试1
员工号: 7782
存储过程实例-测试2
员工号: 7789
Oracle中使用PL/SQL编写输入员工编号 查询员工姓名存储过程实例
存储过程实例
编写输入员工编号查询员工姓名存储过程: 要求: 1.在scott用户的emp表中依据输入的员工编号,输出员工姓名 2.如果没有找到,显示'没有找lace procedure pro01(pEmpNo IN NUMBER) is enVar VARCHAR2(100); begin
Oracle_PLSQL教程-第二章
翻译:陈拓 chentuo@2006 年 6 月16 日创建过程Copyright © Oracle Corporation, 2001. All rights reserved.进度表: 时间 主题40 分钟 讲演25 分钟 练习65 分钟 总共目标完成本课程后, 您应当能够:• 描述过程• 创建过程• 形式参数和实际参数之间的区别• 列举不同参数模式的特性• 创建带参数的过程• 调用过程• 在过程中处理异常• 删除过程22 Copyright © Oracle Corporation, 2001. All rights reserved.本课目标在本课中,你将学习创建、执行和删除过程。
什么是过程?• 过程是执行一个动作的子程序的一种类型• 过程可以作为一个方案对象被存储在数据库中,用于重 复执行23 Copyright © Oracle Corporation, 2001. All rights reserved.过程的定义过程是一个命名的 PL/SQL 块,它能够接收参数 (在英文中 parameters 有时也称 为 arguments),并且被调用,一般而言,你使用一个过程来完成一个动作。
一个过程有 一个头,一个声明部分,一个执行部分和一个可选的异常处理部分。
一个过程可以被编译并且被作为方案对象存储在数据库中。
过程提高可重用性和可维护性。
当可用时,他们可以在应用程序中被多次使用。
如 果需求改变了,仅仅过程序要被更新,应用程序可以不受影响。
24 Copyright © Oracle Corporation, 2001. All rights reserved.创建过程的语法• REPLACE 选项指示如果过程存在,它将被删除并且用语句创建的新版本代替• PL/SQL 块,既可以用 BEGIN 开始也可以用局部变量的声明开始,既可以用 END 结束也可以用 ENDprocedure_name 结束CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block;CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter1 [mode1] datatype1, parameter2 [mode2] datatype2, . . .)] IS|AS PL/SQL Block; 创建过程的语法语法定义 参数说明 procedure_name过程的名字 parameterPL/SQL 变量的名字,依据所使用的模式,参数值由过程被 传递到主叫环境或反之,或两者都有 mode参数的类型:IN (默认)、OUT 、IN OUT Data type参数的数据类型 可以是任何 PL/SQL 数据类型。
Oracle10g数据库实验指导书
Oracle10g数据库实验指导书前言ORACLE数据库是属于数据库开发软件及应用领域的专业课,是面向计算机专业本科生开设的一门数据库应用普及型计算机专业课程。
ORACLE数据库是当前应用最为广泛的数据库系统,ORACLE数据库是针对高年级学生的实践性较强的课程。
通过实训,并结合典型系统进行分析,使学生较为系统地掌握ORACLE数据库的基本开发方法,运用数据库设计理论设计出满足一定规范的ORACLE 数据库应用系统。
随着计算机数据库技术的迅速发展和在当今信息社会中的广泛应用,给《ORACLE数据库》课程的教学提出了新的更高的要求。
由于ORACLE数据库是一门实践性较强的技术,课堂教学应该与实践环节紧密结合。
实验要求通过理论学习,能够在ORACLE这个大型的数据库设计实践中,对ORACLE的基本功能有一个初步的了解:通过对SQL*PLUS的简单使用,掌握其基本操作命令和技术;通过PL/SQL编程语言的使用与程序设计的分析,加深学生对SQL*PLUS和PL/SQL技术的理解和掌握,进而为今后再涉及到难度较大的实际应用打下扎实的基础。
总之,通过上述实验环节,使学生加深了解和更好地掌握《ORACLE10g数据库》课程教学大纲要求的内容。
在课程实训过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实训内容的准备,就实验可能出现的情况提前做出思考和分析。
(2)仔细观察上机操作时出现的各种现象,记录主要情况,作出必要说明和分析。
(3)认真书写实验报告。
实验报告包括实验目的和要求,实验情况及其分析。
对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)实验课程不迟到。
目录实践1 Oracle10g的安装与配置及常用工具的使用 (1)实践2 创建数据库、表空间和数据文件 (25)实践3 数据库的安全管理 (27)实践4 管理表结构与表数据 (32)实践5 管理索引、视图、同义词和序列 (36)实践6 PL/SQL编程基础 (38)实践7 PL/SQL高级编程 (42)综合实践一Oracle基本知识与SQL*PLUS简单使用 (46)综合实践二PL/SQL编程语言的使用与程序设计 (57)综合实践三(设计性) JSP+Oracle网上购物系统 (68)附录:员工医疗保险系统表 (69)实践1 Oracle10g的安装与配置及常用工具的使用开发语言及实现平台或实验环境Oracle 10g实践目的(1) 掌握Oracle 10g数据库的安装与配置过程。
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循环用于执行一组代码块一定次数。
Oracle PLSQL程序设计(第6版)(上下册)
7 使用程序数据
7.2 PL/SQL数据类型概 述
7.2.6 ROWID 7.2.7 REF CURSOR 7.2.8 Internet数据类型 7.2.9 “Any”数据类型 7.2.10 用户自定义数据类 型
7 使用程序数据
7.3 程序数据的声明
7.3.1 声明一个变量 7.3.2 声明常量 7.3.3 NOT NULL语句 7.3.4 锚定声明 7.3.5 游标和表的锚 7.3.6 使用锚定声明的益处 7.3.7 NOT NULL数据类型的锚
9 数字
01
02
03
04
9.1 数值型 数字类型
9.2 数字转 换
9.3 数字运 算符
9.4 数字函 数
9 数字
9.1 数值型数字类型
9.1.1 NUMBER类型 9.1.2 PLS_INTEGER类型 9.1.3 BINARY_INTEGER类型 9.1.4 SIMPLE_INTEGER类型 9.1.5 BINARY_FLOAT和BINARY_DOUBLE类型 9.1.6 SIMPLE_FLOAT和SIMPLE_DOUBLE类型 9.1.7 数字子类型
CD
10 日期和时间戳
10.1 Datetime数据类 型
10.1.1 声明日期时间变量
10.1.2 选择日期时间数据类 型
10 日期和时间戳
10.3 INTERVAL数据类型
10.3.1 声明INTERVAL变量 10.3.2 什么时候使用INTERVAL
10 日期和时间戳
10.4 日期时间转换
7 使用程序数据
7.5 数据类型转换
7.5.1 隐式类型转换 7.5.2 显式类型转换
8 字符串
PLSQL安装配置和使用说明书
PLSQL安装配置和功能说明1.PLSQL简介PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。
如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。
PL/SQL Developer 侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序过程中的主要优势。
2.PLSQL安装以如下图所示的软件版本为例点击安装,安装完成之后通常需要注册注册码;根据所需码进行注册(产品号、序列码、密码……)当然也可以通过上网进行搜索相关注册所需信息。
3.PLSQL使用3.1.PLSQL使用前提条件Pl/sql 在正常使用前必须有oracle数据库环境,(安装oracle服务器端或者客户端数据库软件)。
以安装了oracle11g客户端软件环境为例3.1.1.tnsnames连接找到tnsnames.ora文件,如图所示:在安装的oracle数据库文件夹:F:app\liu\product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora不管是oracle的10g还是11g版本,主要是找到标红的文件夹本例子完整的路径如下:F:\app\liu\product\11.1.0\db_1\NETWORK\ADMIN\tnsnames.ora3.1.2.tnsnames 配置打开tnsnames.ora文件进行编辑在文件中增加如下内容:MISSDDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.0.241)(PORT = 1521)) (CONNECT_DATA =(SID = orcl)))或者OPIDSSCK_231 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.0.231)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = opids) ))添加这两段的目的是增加两个数据库的连接(MISSDDB 、OPIDSSCK_231 )如图:3.2.PLSQL常用功能3.2.1.登陆当打开PL/SQL Developer时,直接在“登录”对话框中输入用户名、密码、数据库(本地网络服务名)和连接为的身份(除了sys用户需要选择连接为sysdba之外,其他用户都选择标准/Normal)。
Oracle_PLSQL教程-第五章
511
Copyright © Oracle Corporation, 2001. All rights reserved.
创建包体
为了创建包,在包体中定义所有公共和私有结构。
§ 如果包体已经存在,指定 REPLACE 选项。 § 在包体中子程序的定义顺序很重要:你必须在一个变量被引用之前先声明它,
同样,在一个私有子程序被调用之前你必须先声明它。通常的做法是在包体中
先定义私有变量和子程序,后定义公共子程序。
语法解说
在包中定义所有公共和私有过程与函数。
参数
说明
package_name
Oracle PL/SQL 编程 54
第五章 创建包
包声明 包体
引用包对象
过程 A 声明
公共变量 公共过程
过程 B 声明
私有变量 私有过程
过程 A 定义
公共过程
局部变量
55
Copyright © Oracle Corporation, 2001. All rights reserved.
包的开发 (续) 结构的可见性 Local
第五章 创建包
翻译:陈拓 chentuo@ 2006 年 6 月 16 日
创建包
Copyright © Oracle Corporation, 2001. All rights reserved.
进度表:
时间 40 分钟练习 总共
Oracle PL/SQL 编程 51
• REPLACE 选项删除并重新创建包声明 • 在包声明中的变量声明默认情况下被初始化 NULL • 在包声明中的所有被声明的结构对于已授权的用户都是
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数据库进行访问。
PLSQL程序设计(Oracle)_教程宋红康_oracle_sql_plsql
PLSQL程序设计(Oracle)_教程宋红康_oracle_sql_plsql 学完了,做个⼩总结,也当做复习⼀下掌握Oracle数据库,阅读起来会顺畅⼀些什么是PL/SQL?PL/SQL全称Procedure Language & Structured Query LanguagePL/SQL是Oracle对sql语⾔的过程化扩展指在SQL命令语⾔中增加了过程处理语句(如分⼦、循环等),使SQL语⾔具有过程处理能⼒(就是对SQL语⾔储存过程语⾔的扩展) PL/SQL程序结构declare --程序的声明部分(声明变量,声明游标,声明例外等)begin --程序的执⾏部分(打印输出,if,循环等)exception --异常处理机制(plsql程序遇到错误对⾃动停⽌运⾏,提前写好exception语句则会正常执⾏完毕) --如没有异常处理机制通常省略这段代码(学习过程中基本不会⽤到)end;变量声明规则:⽰例: Hello Worldset serveroutput on; --每次第⼀次使⽤需要这条命令开启plsql程序declare--声明部分,⽤于声明某些变量,记录类型,游标等begin--程序的执⾏部分,dbms_output.put_line('Hello World');end;⽰例: 查询员⼯号(employe_id)为100的员⼯的⼯资(salary)declare--声明变量v_sal number(8,2);begin--select语句;格式: select...into...select salary into v_sal from employees where employee_id =100;--打印输出结果dbms_output.put_line(v_sal);end;。
Oracle_PLSQL教程-第一章
16
Copyright © Oracle Corporation, 2001. All rights reserved.
子程序概览 子程序是基于标准的 PL/SQL 结构的,该结构包括一个声明部分,一个可执行部
分,和一个可选的异常处理部分。 子程序可以被编译和存储在数据库中。它提供模块性,可扩展性,可重用性和可维
第一章 PL/SQL 子程序概览
翻译:陈拓 chentuo@ 2006 年 6 月 16 日
PL/SQL 子程序概览
Copyright © Oracle Corporation, 2001. All rights reserved.
进度表:
时间 40 分钟 25 分钟 65 分钟
Object types
<header> IS|AS or DECLARE 。。。
BEGIN 。。。
EXCEPTION 。。。
END;
Database Server Constructs
Anonymous blocks
Stored procedures or functions
Stored packages
§ 在 EXCEPTION 和 END 之间的异常部分是可选的。这部分捕获预先定义的错 误条件。在这一部分中,你定义如果指定的错误条件发生时要采取的行为。
Oracle PL/SQL 编程 18
第一章 PL/SQL 子程序概览
PL/SQL 子程序
xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不要分号,但是END和SQL语句要求用分号结束。
2020/11/23
3
7.1.2 运算符
数据库原理与应用
1.算术运算符
算术运算符用于执行数字型表达式的算术运 算,PL/SQL 支持的算术运算符包括: +:加。 -:减。 x:乘。 /:除。 MOD:取模
2020/11/23
4
7.1.2 运算符
数据库原理与应用
2020/11/23
13
7.1.4 定义数据类型
数据库原理与应用
例如:定义一个记录类型的student。
DECLARE
TYPE student IS RECORD(
name VARCHAR2(10),
sex CHAR(2),
age INT
);
stu1 student;
BEGIN
:=‘test’;
2.比较运算符
比较运算符用来比较两个表达式的值是否相 同。PL/SQL支持的比较运算符包括:
>大于。 = 等于。 < 小于。 >= 大于等于。 <= 小于等于。 != 不等于。 like 类似于。 between 在……之间。 in在……之中。
2020/11/23
5
7.1.2 运算符
数据库原理与应用
数据库原理与应用
第7章 Oracle 10g PL/SQL程序设计
7.1 PL/SQL程序设计基础 7.2 流程控制语句 7.3 游标 7.4 异常处理 7.5 过程与函数 7.6 触发器
2020/11/23
1
数据库原理与应用
7.1 PL/SQL程序设计基础
PL/SQL简介
PL/SQL既具备SQL的功能,又具备过程化语 言的条件判断、循环、出错处理等特点,并 支持所有的事务控制命令。 一个完整的语句块一次发送到Oracle,可明 显地减少与Oracle之间的通信和调研,提高 效益。
b_date DATE;
v_date b_date%TYPE;
v_bookname book.bookname%TYPE;
2020/11/23
15
7.1.4 定义数据类型
数据库原理与应用
2020/11/23
16
7.1.4 定义数据类型
数据库原理与应用
定义参考类型的变量(2)
定义变量的类型,使其参考表、视图或游标 的数据类型。 语法: <变量名> <表名|视图名|游标名>%ROWTYPE 例如:
数据库原理与应用
5.赋值运算符
PL/SQL中的赋值运算符为等号(:=),它 将表达式的值赋给一个变量。例如:
DECLARE
x INT;
BEGIN
x := 100 + 50;
dbms_output.put_line(x);
END;
注意:在SQL*PLUS中使用dbms_output.put_line 来输出变量的值,需要执行SET SERVEROUTPUT ON命令打开环境变量
serveroutput
2020/11/23
8
7.1.2 运算符
数据库原理与应用
2020/11/23
9
7.1.3 变量与常量
数据库原理与应用
1.变量声明
PL/SQL在DECLARE部分中声明变量,语法 x CHAR(10) --定义长度为10字符的变量x
2020/11/23
12
7.1.4 定义数据类型
数据库原理与应用
定义数据类型的语法格式为:
TYPE 数据类型名 IS 数据类型
Oracle允许用户定义3种数据类型:
RECORD(记录)、TABLE(表)、 VARRAY(变长数组)
定义RECORD的语法为: TYPE 数据类型名 IS RECORD(成员变量定义);
2020/11/23
11
7.1.3 变量与常量
数据库原理与应用
举例说明变量定义和赋初值
qty NUMBER(2):=12; qty NUMBER(2) DEFAULT 12; address CHARVAR2(20):=‘beijing’; b_date DATE:=’08-05月-10’; re_mark BOOLEAN:=FALSE;
2020/11/23
2
7.1 PL/SQL程序设计基础
数据库原理与应用
7.1.1 PL/SQL程序结构
DECLARE --定义部分:变量、常量、游标、 自定义数据类型等说明。
BEGIN --执行部分:PL/SQL语句。 EXCEPTION --异常处理部分,异常的处理
END;
*关键词DECLARE、BEGIN、EXCEPTION后
3.逻辑运算符
逻辑运算符用于测试条件是否为真,它与 比较运算符一样,根据测试结果返回布尔 值TRUE、FALSE。逻辑运算符有以下几 种:
AND
OR
NOT
2020/11/23
6
7.1.2 运算符
数据库原理与应用
4.字符串连接符
“||”可以实现字符串之间的连接操作。 PL/SQL中,字符串之间的其他操作通过字 符串函数实现。
例7-1 下列表达式用字符串连接符实现两字符 串间的连接。
SELECT 'abc' || '123' FROM dual
其计算结果为abc123。
➢ 注意:dual是一个虚拟表,用来构成select的语 法规则,oracle保证dual里面永远只有一条记录。
2020/11/23
7
7.1.2 运算符
2.变量赋值
变量声明后,可以按下面语法为变量赋值:
变量名 := 表达式;
例如:x:=15;
2020/11/23
10
7.1.3 变量与常量
数据库原理与应用
3. 定义常量
变量名 CONSTANT 数据类型 := 值 例如:
DECLARE pi CONSTANT NUMBER := 3.1415926;
END; 2020/11/23
14
7.1.4 定义数据类型
数据库原理与应用
定义参考类型的变量(1)
当将数据库列的值放到一个变量时,必须保证 变量的数据类型与列的数据类型完全一致。可 用已定义好的变量的类型或列的类型来定义新 变量的类型。
语法
<变量名> <已定义变量名或表名.列名> %TYPE 例如:
rec book%ROWTYPE;
rec.qty:=120;
2020/11/23
17
7.1.4 定义数据类型
数据库原理与应用
2020/11/23
此类型的变量内的字段与 表、视图、游标内的列的 名字和类型完全一致。定 义后,使用此类型的变量 时,用变量名.列名来表示。