oracle变量
2015-08-06 16:49
676 查看
格式:
variable_name [CONSTRANT] type [NOT NULL] [:=value];
变量名 常量 类型 非空 值
如果有关键字NOT NULL, 那后面必须有赋初值。
赋值:
变量可以赋初值、在语句块中赋值,也可以用查询结果赋值 select into 。
如果没有where name ='张三',就会报错,因为返回的结果不止一行。
使用 %TYPE
使用%TYPE,是的开发人员可以基于已有的变量类型,或者是数据库列的类型来指定变量的类型。
通过%TYPE的类型映射功能,使得在类型发生变化时非常容易对代码进行维护。因为当指定类型发生变化时,如上例
emp.empname类型改变时,empname的类型也会相应地改变。
使用%ROWTYPE
%ROWTYPE是与 %TYPE相似的用于绑定到数据库列表的类型,%TYPE仅绑定到单个数据库的类型,而%ROWTYPE则绑
定到一整行的所有列类型,可以将使用%ROWTYPE定义的变量看作是一种结构体。
查询:
插入:
和游标配合使用:
variable_name [CONSTRANT] type [NOT NULL] [:=value];
变量名 常量 类型 非空 值
如果有关键字NOT NULL, 那后面必须有赋初值。
赋值:
变量可以赋初值、在语句块中赋值,也可以用查询结果赋值 select into 。
DECLAR num NUMBER :=1; ch varchar(4); salary NUMBER; BEGIN ch:='abc'; select salary into salary from emp where name='张三'; END;
如果没有where name ='张三',就会报错,因为返回的结果不止一行。
使用 %TYPE
使用%TYPE,是的开发人员可以基于已有的变量类型,或者是数据库列的类型来指定变量的类型。
declare empname emp.empname%TYPE; se varchar2(4); sex se%TYPE; BEGIN select empname , sex into empname,sex from emp where empname='张三'; DBMS_OUTPUT.put_line(empname || ' ' || sex); END;
通过%TYPE的类型映射功能,使得在类型发生变化时非常容易对代码进行维护。因为当指定类型发生变化时,如上例
emp.empname类型改变时,empname的类型也会相应地改变。
使用%ROWTYPE
%ROWTYPE是与 %TYPE相似的用于绑定到数据库列表的类型,%TYPE仅绑定到单个数据库的类型,而%ROWTYPE则绑
定到一整行的所有列类型,可以将使用%ROWTYPE定义的变量看作是一种结构体。
查询:
DECLARE emp_info emp%ROWTYPE; BEGIN select * into emp_info from emp where empname='张三'; DBMS_OUTPUT.put_line(emp_info.empid || ' ' || emp_info.empname || ' ' || emp_info.sex || ' '|| emp_info.salary); END;
插入:
DECLARE emp_info emp%ROWTYPE; BEGIN emp_info.empid :=1031; emp_info.empname :='王菲'; emp_info.sex :='女'; emp_info.salary :=5000; insert into emp values emp_info; END;
和游标配合使用:
DECLARE T_emp emp%ROWTYPE; cursor emp_cursor is select * from emp; BEGIN open emp_cursor; LOOP FETCH emp_cursor INTO T_emp; exit when emp_cursor%NOTFOUND; DBMS_OUTPUT.put_line(T_emp.empid || ' ' ||T_emp.empname || ' ' || T_emp.sex || ' ' || T_emp.salary); END LOOP; CLOSE emp_cursor; END;
相关文章推荐
- Oracle组合索引与回表
- 搭建安装oracle数据库
- oracle导入时IMP-00010: 不是有效的导出文件, 头部验证失败
- Oracle中触发器(1)
- 查看Oracle中是否有锁表的sql
- oracle 11g 按时间建分区表
- 一张6亿条数据表引发的事故
- Oracle异常整理
- Oracle下一条SQL语句的优化
- linux下安装oracle11gR2
- ORACLE的体系结构
- oracle (+)是什么意思
- Oracle发布OSS suite新版本,适应开放的新环境
- 2015年8月5日--联合查询 ,层次查询
- oracle 全文检索实践
- oracle简单语句
- oracle 的left join和(+)真的可以起到一样的效果吗?
- CentOs 6.3_64静默安装oracle11g_r2
- Oracle垃圾数据清理相关问题
- Oracle垃圾数据清理相关问题 分类: Oracle 2015-08-06 11:14 12人阅读 评论(0) 收藏