SQL> declare
2 c_tax_rate number(3,2):=0.03;
3 v_name varchar2(20);
4 v_passwd varchar2(20);
5 v_sale number(7,2);
6 v_tax_sale number(7,2);
7 begin
8 select name,passwd,salary into v_name,v_passwd,v_sale from mytest where id=&inpt;
9 v_tax_sale:=v_sale*c_tax_rate;
10 dbms_output.put_line('name:'||v_name||' passwd:'||v_passwd||' taxsale:'||v_tax_sale);
11 end;
12 / name:123 passwd:123 taxsale:3 PL/SQL procedure successfully completed

在声明变量的时候可以设置类型为动态的取表中的字段的类型一致

SQL> insert into mytest values('','','passwd','');

1 row inserted

SQL> select * from mytest;

ID    NAME                 PASSWD                                                                                         SALARY
----- -------------------- -------------------- --------------------------------------------------------------------------------
1 123 123 100
2 gaodingle!!!! 123 100
3 gagaga 123 100
4 125555 passwd 50 SQL>
SQL> declare
2 c_tax_rate number(3,2):=0.03;
3 v_name varchar2(4);
4 v_passwd varchar2(20);
5 v_sale number(7,2);
6 v_tax_sale number(7,2);
7 begin
8 select name,passwd,salary into v_name,v_passwd,v_sale from mytest where id=&inpt;
9 v_tax_sale:=v_sale*c_tax_rate;
10 dbms_output.put_line('name:'||v_name||' passwd:'||v_passwd||' taxsale:'||v_tax_sale);
11 end;
12 / declare
c_tax_rate number(3,2):=0.03;
v_name varchar2(4);
v_passwd varchar2(20);
v_sale number(7,2);
v_tax_sale number(7,2);
begin
select name,passwd,salary into v_name,v_passwd,v_sale from mytest where id=4;
v_tax_sale:=v_sale*c_tax_rate;
dbms_output.put_line('name:'||v_name||' passwd:'||v_passwd||' taxsale:'||v_tax_sale);
end; ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
ORA-06512: 在 line 9 SQL>
SQL> declare
2 c_tax_rate number(3,2):=0.03;
3 v_name mytest.name%type;
4 v_passwd varchar2(20);
5 v_sale number(7,2);
6 v_tax_sale number(7,2);
7 begin
8 select name,passwd,salary into v_name,v_passwd,v_sale from mytest where id=&inpt;
9 v_tax_sale:=v_sale*c_tax_rate;
10 dbms_output.put_line('name:'||v_name||' passwd:'||v_passwd||' taxsale:'||v_tax_sale);
11 end;
12 / name:125555 passwd:passwd taxsale:1.5 PL/SQL procedure successfully completed

SQL> declare
2 --定义一个pl/sql记录类型叫做 test_record_type 可以理解为定义一个类,这个类型中包括了name,passwd,salary
3 type test_record_type is record (name mytest.name%type,passwd mytest.passwd%type,salary_gaga mytest.salary%type);
4 --定义一个变量这个变量是test_record_type类型 好比类new一个对象
5 sp_record test_record_type;
6 begin
7 select name,passwd,salary into sp_record from mytest where id=&inpt;
8 dbms_output.put_line('name:'||sp_record.name||' salary:'||sp_record.salary_gaga);
9 end;
10 / name:123 salary:100

SQL> declare
2 type sp_test_table is table of mytest.name%type index by binary_integer;
3 test_table sp_test_table;
4 begin
5 select name into test_table(0) from mytest where id=&inpt;
6 dbms_output.put_line('name:'||test_table(0));
7 end;
8 / name:gagaga PL/SQL procedure successfully completed

PL/SQL编程—变量的更多相关文章

  1. 基于oracle 的PL/SQL编程 -变量使用

    1. 需要开启的服务:  本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...

  2. PL/SQL编程--变量声明及赋值

    declare v_price ,);--单价 v_usenum number;--水费字数 v_usenum2 number;--使用吨数 begin v_price:=2.45;--每吨单价 v_ ...

  3. PL/SQL 编程(一)基础,变量,分支,循环,异常

    SQL和PL/SQL: SQL 结构化查询语言(Structural Query Language),是用来访问和操作关系型数据库的一种标准通用语言,属于第四代语言(4GL).可以方便的调用相应语句来 ...

  4. Oracle PL/SQL编程之变量

    注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1.简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a.标量类型( ...

  5. ORACLE PL/SQL编程详解

    ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...

  6. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  7. pl/sql编程

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  8. [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)

    原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...

  9. ORACLE PL/SQL编程之八:把触发器说透

    原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...

随机推荐

  1. Java 中 byte 类型初始化问题

    很早的时候由于工作需要,接触过一点 Java,于是有了这个坑,今天回头看到自己在 Stackoverflow 上提的问题发现了它,于是再记录下. 在使用中,需要将 byte 类型的的每一位都置 1.我 ...

  2. tomcat修改默认端口

    1.webserver: tomcat2.version:   Apache Tomcat/7.0.293.operation: 修改默认端口 3.1 修改tomcat目录下的/conf/server ...

  3. 第二百零八节,jQuery EasyUI,SplitButton(分割按钮菜单)组件

    jQuery EasyUI,SplitButton(分割按钮)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 SplitButton(分割按钮)组件的使用 ...

  4. asp.net页面触发事件panel滚动条高度不变的实现方法

    asp.net页面按钮点击触发事件后panel滚动条非自动回到顶端,每次都要往下拉一下,关于这个问题的解决方法如下 此文是为解决asp.net页面按钮点击触发事件后panel滚动条非自动回到顶端的解决 ...

  5. 【matlab】生成列是0-255渐变的图像

    图像大小:640×512 8位灰度图 %% 生成图像 %大小:* %类型:灰度图 %灰度值:列按照0-255渐变,故命名为column shade. clc,clear all,close all; ...

  6. python3----模块(序列化(json&pickle)+XML+requests)

    一.序列化模块 Python中用于序列化的两个模块: json     跨平台跨语言的数据传输格式,用于[字符串]和 [python基本数据类型] 间进行转换 pickle   python内置的数据 ...

  7. GL 纹理 格式 资料备份

    分别转载至:http://www.tuicool.com/articles/qAbYfq    和 http://www.verydemo.com/demo_c161_i114362.html 在手机 ...

  8. 一起talk C栗子吧(第二十五回:C语言实例--二分查找)

    各位看官们,大家好,上一回中咱们说的是顺序查找的样例,这一回咱们说的样例是:二分查找.闲话休 提,言归正转. 让我们一起talk C栗子吧. 看官们,我们在上一回中说了查找的相关内容,而且介绍了一种查 ...

  9. jeesite学习笔记(一) 项目框架

    JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. 在github上,对jeesite平台有详细的介绍,这里稍作整理,给出项目的内置功能 ...

  10. OC处理.Net Json时间格式

    通过服务器收到的json时间格式是/Date(xxxxxxxxxxxxx+xxxx)/,其中前半部分是自1970年的millionSecs,后半部是时区,我们需要对齐进行转换. 解决方式有两种,第一种 ...