一.首先变量的声明有3中方式

1.按数据类型进行声明

①直接声明数据类型

②格式:变量名  数据类型(大小)

V_TEST varchar2(20);
V_NUM  number;

注:存储过程中声明变量必须在begin之前

并且声明字符串时必须指定大小,不然会报错

2.使用%TYPE声明

①格式:变量名  表名.字段名%TYPE

②含义:该变量的数据类型与指定表的指定字段的数据类型一致

V_NAME DFGZ_PKG.NAME%TYPE;

3.使用%ROWTYPE声明

①变量名  表名%ROWTYPE

②含义:该变量的数据类型与指定表的指定行记录(所有字段)的数据类型一致

--V_TOTALL_ROW 表的整行数据
V_TYPE_TOTALL_ROW  V_TOTALL_ROW%ROWTYPE;

总结:

①在Oracle的存储过程中变量的声明不区分大小写

②变量的使用必须声明

二.变量的赋值(3种方式)

1.直接赋值法

①使用 “:=”

②使用条件:适用于声明变量的前两种方式

V_COLUMN :='100';

③变量后面不能直接跟sql语句,负责sql不会执行,如

--错误做法
V_LOGO :=SELECT REVC_SIGN INTO V_LOGO FROM DFGZ_PKG;--正确做法
V_LOGO :=‘SELECT REVC_SIGN INTO V_LOGO FROM DFGZ_PKG’;

④变量的声明和赋值可以一块进行

create....--开始给变量赋值
V_sql :='select reve_state from dfgz_pkg where fileNum=5';begin/*具体业务部分*/end;

2.select 表字段 into 变量 from  表

方式一:

①查询指定表的所有字段

②适用于声明变量的前2种方式可以使用

--根据代发工资个人id查询对应的父机构(代发单位)序列
SELECT REVC_SIGN INTO V_LOGO FROM DFGZ_PKG WHERE REVCID=(SELECT PARENTID FROM DFGZ_PKG WHERE REVEID = V_REVCID);

方式二:

①查询指定表的所有字段

②适用于声明变量的第3种方式

--将id=2203的DFGZ_PKGMX表数据赋值给变量V_COLUMN_SID;SELECT * INTO  V_COLUMN_SID FROM DFGZ_PKGMX T WHERE t.id=2203

注:

①查询结果只能返回一条记录

②查询的表字段必须是该表的所有字段

--错误示例一:查询的是所有记录select * into V_COLUMN_SID  from DFGZ_PKGMX T;
--错误示例二:查询的是该表的多个字段select  t.id,t.name into V_COLUMN_SID  from dfgz_pkgmx t;

3.execute immediate sql语句字符串 into 变量

declare /*存储过程,不需要声明*/v_sql varchar2(200);v_revc_row varchar2(200);beginv_sql:='select v_revc_row  from dfgz_send where revc_id=22150';--v_revc_row 赋值execute immediate v_sql into v_v_revc_row ;--打印结果(Oracle自带日志打印功能)DBMS_OUTPUT.put_line(v_revc_row  );end;

三.变量的调用

1.通常来说,变量只有这3种使用场景:赋值、逻辑判断、算术运算

2.平常不能用作查询列

--错误调用select v_reve_sign from dual;

3.使用%ROWTYPE声明的变量如何调用?

利用“变量名.表字段”的方式可以取到该表中指定行(返回行)的指定列(任意列)所代表的数据。

--  v_revc_row  赋值select v_revc_row  from dfgz_send where revc_id=22150;-- 调用DBMS_OUTPUT.put_line(dfgz_send.id);

Oracle中存储过程中变量的声明与赋值相关推荐

  1. SqlServer中存储过程中将Exec的执行结果赋值给变量输出

    原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...

  2. oracle数据库存储过程中NO_DATA_FOUND不起作用解决

    oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...

  3. oracle 中的日志在处理,ORACLE在存储过程中记录日志的处理包

    Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...

  4. Java变量的声明和赋值

    java 语言是强类型(Strongly Typed)语言,强类型包含以下两方面的含义: 所有的变量必须先声明.后使用. 指定类型的变量只能接受类型与之匹配的值. 这意味着每个变量和每个表达式都有一个 ...

  5. oracle数据存储过程 中的循环 for 拼接字符串,oracle存储过程中使用字符串拼接

    1.使用拼接符号"||" v_sql := 'SELECT * FROM UserInfo WHERE ISDELETED = 0 AND ACCOUNT =''' || vAcc ...

  6. ORACLE在存储过程中记录日志的处理包

    Java开发过程中一般使用LOG4J来将程序的运行日志记录到文件中,在ORACLE存储过程中也需要记录日志,我将工作中自己整理的一个记录日志的包分享出来,其实很简单,希望大家多提意见. 一.表结构 为 ...

  7. java语言语法--- Java标识符(标识符命名规则)、Java关键字、Java变量(变量的声明、赋值、使用)和常量(字符常量、字面常量)(包括Java字节码文件反汇编命令javap)

    java语言语法- Java标识符.Java关键字.Java变量和常量(包括Java字节码文件反汇编命令javap) 1.标识符 (1)读音:biao zhi fu (2)什么是标识符? (摘自百度百 ...

  8. python变量的声明和赋值

    python中变量的声明赋值,有三种样式: 一.单一变量赋值,如: a = 1a = "你好!" 二.相同一个值,赋值给多个不同的变量,如: a = b = c= d =55aa ...

  9. pl/sql 变量的声明与赋值

    pl/sql 是一种强类型的编程语言,所有的变量必须声明后再使用 ,要求在DECLARE部分进行声明 变量名称规定: 变量名称可以有字母,数字 _ $ #等组成 所有的变量名称要求以字母开头,不能是o ...

  10. oracle创建存储过程设置变量,oracle建游标变量包,且在存储过程中使用

    --建包 createorreplacepackage PA_BGYZB as type sp_cursor is ref cursor; end PA_BGYZB; --存储过程调用包 create ...

最新文章

  1. Hudson:持续集成工具的安装、使用
  2. VMware linux 克隆机的配置
  3. oauth2 token为空拦截_feign之间传递oauth2-token的问题和解决
  4. HTML5 高级系列:web Storage 学前端开发要先看这个
  5. Linux 安装Zookeeper单机版(使用Mac远程访问)
  6. android jar导出,Android项目导出jar包的小技巧
  7. Linux系统各文件、目录介绍
  8. AlexNet做文档布局分析 (版面分析)数据集
  9. 第一次网络渗透实验报告
  10. android系统查看wifi密码,安卓手机如何查看WIFI密码
  11. 从零开始学Java自己利用接口和集合框架做的简单图书管理系统
  12. 【转】傅里叶分析之掐死教程
  13. ftp服务器端口修改,FTP端口:默认为21端口
  14. 算法题 高斯消元解线性方程组(Python)
  15. 微博营销五种鱼饵秘制方法-鱼塘理论
  16. oracle11g64跟32,plsql32 位连接oracle11g64位方法
  17. 手把手教你用JAVA实现“语音合成”功能(文字转声音)标贝科技
  18. 我等到花儿也谢了(国语)铃声 我等到花儿也谢了(国语)手机铃声...
  19. Outlook2013/2016签名选项卡无法打开
  20. AD域帐号被锁问题排查

热门文章

  1. idea 修改工作空间
  2. 利用Linux查找重复文件(shell脚本)
  3. Windows10桌面IE浏览器图标无法删除的解决方案
  4. html文字闪烁特效代码,HTML最简单的文字闪烁代码
  5. 利用Matlab进行根轨迹分析法
  6. 计算机的内存储器的最大特点是,随机存取存储器(RAM)的最大特点是
  7. Landsat系列卫星遥感影像数据USGS中批量下载多张图像的方法
  8. 数据路:三人行,必有我师!
  9. CUBE+STM32F103 入门
  10. ONOS 南向抽象层分析