PL/SQL编程—变量



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编程—变量的更多相关文章
- 基于oracle 的PL/SQL编程 -变量使用
1. 需要开启的服务: 本机安装的oracle ,默认是开机启动服务的,开机时间太慢,关闭了,需要手动打开: OracleDBConsoleorcl OracleOraDb10g_home1iSQL ...
- PL/SQL编程--变量声明及赋值
declare v_price ,);--单价 v_usenum number;--水费字数 v_usenum2 number;--使用吨数 begin v_price:=2.45;--每吨单价 v_ ...
- PL/SQL 编程(一)基础,变量,分支,循环,异常
SQL和PL/SQL: SQL 结构化查询语言(Structural Query Language),是用来访问和操作关系型数据库的一种标准通用语言,属于第四代语言(4GL).可以方便的调用相应语句来 ...
- Oracle PL/SQL编程之变量
注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1.简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a.标量类型( ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
- Oracle数据库编程:PL/SQL编程基础
2.PL/SQL编程基础: PL/SQL块: declare 定义部分 begin 执行部分 exception 异 ...
- pl/sql编程
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- ORACLE PL/SQL编程之八:把触发器说透
原文:ORACLE PL/SQL编程之八:把触发器说透 ORACLE PL/SQL编程之八: 把触发器说透 大家一定要评论呀,感谢!光发表就花了我将近一个下午. 本篇主要内容如下: 8.1 触发器类型 ...
随机推荐
- java 获取服务器时间同步本地计算机时间
http://hi.baidu.com/captives/item/25c8b80170a9b0ccf45ba6f8 ————————————————————————————————————————— ...
- 使用jmeter实现对jar包的调用
一.前言 在我们测试接口的过程中,可能有时需要用到第三方jar包来生成一些测试数据(如有时需要对参数的输入值使用第三方jar包进行加密操作),涉及到这种的情况,普遍做法是:手动调用jar包获得需要的值 ...
- MFC中CString转换成char数组的问题
由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串.关于它们之间的转换,在VS2008中有时会出现异 ...
- 1小时轻松上手springmvc,视频网站后台开发
由于最近半年一直在用springboot,但是也不能忘了本,于是把springmvc重新练了下,做了个前端传个表单,后台接收并显示的界面,该项目可以上传视频的URL,然后前端进行页面的播放,项目采用s ...
- 拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
1.拦截器 java里的拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可 ...
- 升级个人网站框架组件IBatisNet+Castle
<sqlMap namespace="Sequence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance& ...
- tarjan求强连通分量+缩点 模板
#define N 100100 #define M 200200 int n,m; int id,index; //id表示缩点后点的id,index表示进行tarjan算法时访问的点先后 int ...
- 160809、tomcat中配置多个域名及将tomcat配置成系统服务
本地测试用的(注意红色部分) 第一步.自己的windows电脑,在c盘中有个hosts文件(搜索一下),做以下修改(其中127.0.0.1是本机地址,192.1638.10.139是我虚拟机中linu ...
- centos6.5上搭建gitlab服务器(亲测可用哦)
最近的版本控制中,git可谓是脱缰的野马,一发不可收拾.当然git的设计模式也是愈发的成熟,让人刮目相看,完美解决了svn上的不足之处.在目前分布式横行的天下,git可谓是占得了一席之地. 废话少说, ...
- FineReport---函数
1.NUMTO()需要将数字2345转换成二三四五:NUMTO(2345) 2.Toimage函数:Toimage(path)用于在报表中显示某一路径path下的图片 3.row():为获取当前行号 ...