--===================================PLSQL基础篇============================ -- 数据类型: ---- 标量类型:数字 number,字符 varchar,varchar2,char,日期 , -- 布尔 boolean (true,false,null)(存储单个值) --- 复合类型:record,集合类型 (存放多个值的变量) --- 参照类型:cursor --- LOB 类型:存储大数据类型(BFILE,BLOB,CLOB,NCLOB); --============ =================================== --- EMP , DEPT 表; --=============================================== --变量声明 declare v_realName varchar2(20); -- := 赋值符号 v_baseCost number(7,2) :=5.9; --定义number类型,赋值5.9 v_count binary_integer :=0; v_start boolean not null default false; begin select 'hello ' into v_realname from dual; -- 给 v_realName变量赋值 dbms_output.put_line('v_realName--'||v_realName); dbms_output.put_line('v_baseCost---'||v_baseCost); dbms_output.put_line('v_count---'||v_count); end; -- 执行 用 " / " ,下述同样操作 --dbms_output.put_line('v_start---'||v_start); -- boolean类型的不能输出,不能插入,不能将列值保存到boolean变量中 -- 只能对boolean变量执行逻辑操作(见后逻辑语句) -- %type: 变量具有数据库的表中某列或其它变量相同的类型 declare v_name emp.ename%type; begin select ename into v_name from emp where empno = 7900; dbms_output.put_line('v_name---'||v_name); end; -- Record类型:处理单行多列问题 -- record变量的引用:记录类型变量的属性引用方法 " . " declare --t_emp_rec是记录类型 type t_emp_rec is record ( name emp.ename%TYPE, -- name 是t_emp_rec的成员. job emp.job%TYPE); emp_rec t_emp_rec; -- 声明--t_emp_rec记录类型的变量 begin select ename , job into emp_rec from emp where empno = 7900; -- 读取数据到record类型 -- select ename , job , sal into emp_rec from emp where empno = 7900; -- error,没有足够的列值 dbms_output.put_line('emp_rec-name---'||emp_rec.name); dbms_output.put_line('emp_rec-job---'||emp_rec.job); end ; -- 用%rowtype来定义record类型(作用:简化record的定义). -- 当使用%rowtype定义记录类型时,record成员的名称和类型与表或者视图的列名称和类型完全相同. declare v_emp emp%rowtype ; -- v_cost的名称和类型和 cost表一样 begin select * into v_emp from emp where empno = 7900; -- 读取数据到record类型 dbms_output.put_line('v_emp-name---'||v_emp.ename); end ; --================================================================ --=========流程控制:============= /* if 布尔表达式 then xxxx elsif 布尔表达式 then xxxx else xxxx end if; */ declare v_var boolean not null default false; v_int integer :=5; begin if v_var then dbms_output.put_line('v_var: true'); else dbms_output.put_line('v_var: false'); -- then dbms_output.put_line('v_var: false'); error end if; --必须结束if -- 多个if嵌套 if(v_int > 5) then dbms_output.put_line('v_int: >5'); elsif (v_int > 2) then dbms_output.put_line('v_int: >2'); else dbms_output.put_line('v_int: else'); end if; end ; /* loop循环: loop 语句 1 ; 语句 2; exit when 表达式; end loop; */ declare v_int integer :=3; begin loop dbms_output.put_line('v_int:'||v_int); v_int :=v_int+1; if(v_int > 10) then exit; --退出 end if; --exit when v_int > 10; 可以出现在循环的任何位置,注意是when ,不是then; end loop; end; --where循环: /* while 布尔表达式 loop 语句1; 语句2; end loop; */ declare v_int integer :=1; begin while v_int < 10 loop dbms_output.put_line('v_int:'||v_int); v_int :=v_int+1; end loop; end; /* for循环: for 循环计数器 in 下限 .. 上限 loop 语句1; 语句1; end loop; */ declare v_int integer :=0; begin for v_int in 1 .. 10 loop -- 循环 包括1,包括10; dbms_output.put_line('v_int:'||v_int); --v_int :=v_int+1; v_int不能用来作为赋值目标 end loop; end; -- for循环 倒序 declare v_int integer :=10; begin for v_int in reverse 1 .. 10 loop dbms_output.put_line('v_int:'||v_int); --v_int :=v_int+1; v_int不能用来作为赋值目标 end loop; end; --Notice: v_int 是 1.. 10循环中的每个变量,不能用来作为赋值目标 -- 把 v_int 初始化为5,输出的结果跟初始化为0是一样.类似如下的java程序: int j = 5; for (j = 1 ;j <= 10 ; j++){ System.out.println(j); // 1 .... 10; } --NULL --NULL语句不会执行任何操作,并且会直接将控制传递到下一条语句,使用NULL语句主要是提高程序的可阅读性 DECLARE v_sal emp.sal%TYPE; v_ename emp.ename%TYPE; BEGIN SELECT ename,sal into v_ename,v_sal FROM emp WHERE empno=7900; IF v_sal<3000 then UPDATE emp SET comm=sal*1.2 WHERE ename=v_ename; ELSE NULL; END IF; END;
相关推荐
PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) ...
有JavaWEB的网上商城系统源码+项目说明(SSM框架、Shiro技术、Oracle数据库、PLSQL编程、JSP、JQuery、Ajax、Jso).zip 有JavaWEB的网上商城系统源码+项目说明(SSM框架、Shiro技术、Oracle数据库、PLSQL编程、JSP、...
Oracle数据库PL/SQL Developer客户端是数据库管理员和开发人员常用的工具,它专为Oracle数据库系统设计,提供了便捷的界面来编写、测试和调试PL/SQL代码。这个工具的强大之处在于其全面的功能集,允许用户进行数据库...
Oracle数据库连接工具PLSQL轻桌面工具包,安装PLSQL必须下载轻桌面工具包
Oracle数据库培训-PLSQL编程
通过深入学习和实践这些内容,开发者能够熟练掌握在Oracle数据库中使用PLSQL进行编程,并能有效地创建和管理存储过程,以提高数据库应用的效率和质量。在实际工作中,了解这些知识点对于数据库管理和开发工作至关...
Oracle数据库是一种广泛应用于企业级应用的高性能关系型数据库系统,由甲骨文公司开发和维护。它支持复杂的事务处理、数据存储和管理,是许多企业的首选数据库解决方案。PL/SQL,全称Procedural Language/Structured...
大量源码案例,手把手教你PLSQL数据库开发。内容预览: ---- 第一章 PL/SQL 简介 ---- ---- 第二章 PL/SQL程序结构 ---- ---- 第三章 变量与数据类型 ---- ---- 第四章 PL/SQL控制语句 ---- ---- 第五章 PL/SQL游标 ...
plsql developer连接远程数据库(本地不用安oracle)
### Oracle数据库利用PL/SQL开发工具进行数据提取详解 #### 一、Oracle数据库与PL/SQL简介 在深入了解如何利用PL/SQL Developer进行数据提取之前,我们先来简单了解一下Oracle数据库以及PL/SQL的基本概念。 - **...
"使用PLSQL创建Oracle数据库用户并设置权限" 在 Oracle 数据库中,创建用户并设置权限是数据库管理员的基本任务之一。在本文中,我们将使用 PLSQL 创建 Oracle 数据库用户并设置权限,包括创建用户、设置权限和创建...
PL/SQL是Oracle数据库系统提供的扩展SQL语言,用于在各种环境下对Oracle数据库进行访问。 一、PL/SQL语言简介 PL/SQL是Procedure Language/Structured Query Language的缩写,它是Oracle数据库系统提供的一种程序...
oracle数据库系统的好工具,plsql程序设计,内容详尽,适合初学者,步骤详细,是一份难能可贵的资料,我找了很久的,现在共享给大家
在Oracle数据库管理中,PL/SQL Developer是一款非常实用的工具,它专为Oracle数据库的存储程序单元开发设计,包括过程、函数、包、触发器等的编写和调试。这款工具以其用户友好、代码质量优化以及高生产力而受到青睐...
plsqlDev链接Oracle数据库使用plsqlDev链接Oracle数据库使用plsqlDev链接Oracle数据库使用
PLSQL语法Oracle数据库
其中,"plsql"通常指的是Oracle的PL/SQL Developer,这是一个强大的第三方工具,专为开发和管理Oracle数据库的PL/SQL代码而设计。它提供了代码编辑、调试、数据库对象浏览、版本控制等多种功能,极大提高了开发效率...
### Oracle数据库PL/SQL存储过程详解 #### 一、存储过程概述 **Oracle存储过程**是一种可以在Oracle数据库中存储并可被多次调用的PL/SQL代码块。它由一系列的PL/SQL语句组成,可以包含控制流程、变量声明等,能够...
1-2-oracle数据库基础 Oracle体系结构 共158页.ppt 2-1-大型数据库值Oracle 11g SQL Plus 共46页.ppt 2-2-Oracle数据库知识 PLSQL介绍 共69页.ppt 3-1-Oracle数据库知识 PLSQL控制结构 共25页.ppt 4-1-异常处理 共87...
了解了这些基础知识后,对于使用PLSQLDeveloper_win32位的用户,还需要熟悉Oracle数据库的基础概念和PLSQL语法。例如,了解如何声明变量、控制流程(如IF-THEN-ELSE,WHILE循环,CASE语句)、处理异常(EXCEPTION块...