自学PL/SQL 第一讲decalring variables

简介:

本讲课程目标:
1.了解基本的PL/SQL块和结构
2.描述变量的在PL/SQL中的重要性
3.声明变量和执行PL/SQL块

一:PL/SQL的块结构

 
  1. DECLARE (Optional)  
  2.   Variables, cursors, user-defined exceptions  
  3. BEGIN (Mandatory)  
  4.   SQL statements  
  5.   PL/SQL statements  
  6. EXCEPTION (Optional)  
  7.   Actions to perform when errors occur  
  8. END; (Mandatory) 

 在begin区内的sql和pl/sql语句都需要以';'号结束,DECLARE,BEGIN,EXCEPTION关键字后面不需要跟';'号,END关键字则需要。PL/SQL的块类型主要有匿名(anonymous),过程(procedure)和函数(function),函数需要定义返回

二:变量的特点
Temporary storage of data
Manipulation of stored values
Reusability
Ease of maintenance

在PL/SQL中声明变量,可以在declare和begin区对变量进行声明,在begin区定义的变量可以覆盖之前定义的变量;变量的输出有IN,OUT,IN OUT三种类型
Declare and initialize variables in the declaration section.
Assign new values to variables in the executable section.
Pass values into PL/SQL blocks through parameters.
View results through output variables.

变量的类型:
PL/SQL variables
Non-PL/SQL variables: Bind and host variables(用在sqlplus和isqlplus环境下)
所有的PL/SQL变量都有相应的数据类型,数据类型指定存储格式,约束和可用的值范围;PL/SQL变量支持的数据类型有:scalar, composite, reference, LOB

三:声明变量
语法:identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];
变量声明的指导原则
1.统一的命令规范,变量名尽量以v_开头,要避免变量名和字段名相同,否则变量将会优先被解释成字段运行
变量名不能超过30个字节,需要以字母开头
2.一行定义一个变量
3.需要初始化的变量定义not null和constant
4.对变量进行赋初始值使用':='或者default保留字

示例:

 
  1. SQL> set serveroutput on  
  2. SQL> declare  
  3.   2  v_hiredate DATE;  
  4.   3  v_deptno number(2) not null :=10;  
  5.   4  v_location varchar2(10) default 'fuzhou';  
  6.   5  c_comm constant number :1400;  
  7.   6  begin  
  8.   7  select hire_date into v_hiredate from hr.employees where employee_id=100;  
  9.   8  dbms_output.put_line('The hire_date is '||v_hiredate);  
  10.   9* end;  
  11. SQL> /  
  12. The hire_date is 1987-06-17-00:00:00   
  13. PL/SQL procedure successfully completed 

CONSTANT表示变量为固定变量,必须指定初始值;%TYPE属性可以指定变量的类型同基表的数据类型一致,这样可以避免将代码写死

绑定变量示例:调用绑定变量的时候需要加':'号

 
  1. SQL> variable v_salary number  
  2. SQL> begin  
  3.   2  select salary into :v_salary  
  4.   3  from hr.employees where employee_id=100;  
  5.   4  dbms_output.put_line('The result is '||:v_salary);  
  6.   5  end;  
  7.   6  /  
  8. The result is 100000  
  9. PL/SQL procedure successfully completed. 

替换变量示例:定义替换变量使用define命令,调用替换变量使用'&'符号

 
  1. SQL> define v_emp_id = 100 
  2. SQL> variable v_salary number  
  3. SQL> set verify off  
  4. SQL>  begin  
  5.   2  select salary into :v_salary  
  6.   3   from hr.employees where employee_id=&v_emp_id;  
  7.   4  dbms_output.put_line('The emp_id is '||&v_emp_id);  
  8.   5  dbms_output.put_line('The salary is '||:v_salary);  
  9.   6* end;  
  10. SQL> /  
  11. The emp_id is 100  
  12. The salary is 100000  
  13. PL/SQL procedure successfully completed. 

 本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/625399如需转载请自行联系原作者


ylw6006

相关文章
|
6月前
|
SQL 开发框架 .NET
【YashanDB知识库】使用c-调用yashandb odbc驱动执行SQL时报YAS-08008 not all variables bounded
本文来自YashanDB官网,讨论了某客户在使用C# ASP.NET应用时遇到的异常问题。问题表现为YashanDB ODBC驱动不支持.NET框架通过绑定变量执行SQL语句,导致应用无法正常运行。该问题影响所有YashanDB版本及其ODBC驱动版本。解决方法包括避免使用绑定变量或升级ODBC驱动版本。文章通过示例代码展示了问题复现过程,并总结了最小化问题场景以定位和解决问题的经验。
|
7月前
|
SQL 开发框架 .NET
【YashanDB 知识库】使用 c- 调用 yashandb odbc 驱动执行 SQL 时报 YAS-08008 not all variables bounded
某客户C# ASP.NET应用在使用yashandb ODBC驱动时,因驱动不支持绑定变量执行SQL语句而报错“YAS-08008 not all variables bounded”,导致应用无法正常运行。影响所有yashandb及ODBC驱动版本。解决方法为避免使用绑定变量或升级驱动版本。通过简化场景成功复现问题。
|
9月前
|
SQL 存储 关系型数据库
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
本文介绍了SQL的基础语言类型(DDL、DML、DCL、DQL),并详细说明了如何创建用户和表格,最后推荐了几款适合初学者的免费SQL实践平台。
577 3
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
|
9月前
|
SQL 数据挖掘 数据库
SQL自学笔记(2):如何用SQL做简单的检索
本文深入介绍了SQL的基本语法,包括数据查询、过滤、排序、分组及表连接等操作,并通过实际案例展示了SQL在用户研究中的应用,如用户行为分析、用户细分、用户留存分析及满意度调查数据分析。
144 0
SQL自学笔记(2):如何用SQL做简单的检索
|
9月前
|
SQL 数据挖掘 关系型数据库
SQL自学笔记(1):什么是SQL?有什么用?
本文为用户研究新手介绍SQL(结构化查询语言),解释了SQL的基本概念、入门方法及在用户研究中的应用通过实际案例说明,如用户行为分析、用户细分和满意度调查数据分析,展示了SQL在用户研究中的重要作用。
2941 0
SQL自学笔记(1):什么是SQL?有什么用?
|
10月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
132 2
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
377 1
|
SQL 数据库 Perl
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
PL/SQL中执行按钮变为灰色后如何恢复【已解决】
904 0
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标自定义异常:数据探险家的“专属警示灯”
【4月更文挑战第19天】Oracle PL/SQL中的游标自定义异常是处理数据异常的有效工具,犹如数据探险家的警示灯。通过声明异常名(如`LOW_SALARY_EXCEPTION`)并在满足特定条件(如薪资低于阈值)时使用`RAISE`抛出异常,能灵活应对复杂业务规则。示例代码展示了如何在游标操作中定义和捕获自定义异常,提升代码可读性和维护性,确保在面对数据挑战时能及时响应。掌握自定义异常,让数据管理更从容。
|
12月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")

热门文章

最新文章