一.访问oracle之一,检索单行数据
2016-07-29 00:00
232 查看
在plsql中可以通过select...into语句将检索到的数据存放在变量中,然后输出或处理该变量的数据。
注意:当在plsql块中直接使用select...into语句时,该语句必须返回1条数据,并且只能返回1条记录。
使用标量变量接收数据
变量的个数,顺序及数据类型必须匹配。
例如:
declare
v_name emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal
from emp
where emp.empno = &no;
dbms_output.put_line(v_name||'的工资是'||v_sal);
end;
使用记录变量接收数据
记录成员的个数必须与选择列表项的个数完全一致,并且数据类型要匹配。
例如:
declare
type emp_record_type is record(
name emp.ename%type,
sal emp.sal%type
);
emp_record emp_record_type;
begin
select ename,sal into emp_record
from emp
where emp.empno = &no;
dbms_output.put_line(emp_record.name||'的工资是'||emp_record.sal);
end;
嵌入select语句注意事项
* NO_DATA_FOUND例外
当select...into语句没有返回任何数据时,触发该列外。
* TOO_MANY_ROWS例外
当select...into语句返回多条数据时,触发该列外。
* where子句注意事项
在where子句中使用变量时,变量名不能与列名相同,否则会触发TOO_MANY_ROWS例外。
注意:当在plsql块中直接使用select...into语句时,该语句必须返回1条数据,并且只能返回1条记录。
使用标量变量接收数据
变量的个数,顺序及数据类型必须匹配。
例如:
declare
v_name emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal
from emp
where emp.empno = &no;
dbms_output.put_line(v_name||'的工资是'||v_sal);
end;
使用记录变量接收数据
记录成员的个数必须与选择列表项的个数完全一致,并且数据类型要匹配。
例如:
declare
type emp_record_type is record(
name emp.ename%type,
sal emp.sal%type
);
emp_record emp_record_type;
begin
select ename,sal into emp_record
from emp
where emp.empno = &no;
dbms_output.put_line(emp_record.name||'的工资是'||emp_record.sal);
end;
嵌入select语句注意事项
* NO_DATA_FOUND例外
当select...into语句没有返回任何数据时,触发该列外。
* TOO_MANY_ROWS例外
当select...into语句返回多条数据时,触发该列外。
* where子句注意事项
在where子句中使用变量时,变量名不能与列名相同,否则会触发TOO_MANY_ROWS例外。
相关文章推荐
- VB6中用Oracle数据控件访问Oracle(转自天极)
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- oracle 数据仓库提高访问速度方法
- Enterprise Library 4.1数据访问应用程序块快速入门【2】使用DataSet检索多行
- Oracle中访问Database Links 里面的数据表
- OleDB访问数据快普遍比OracleClient访问数据库快
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- ORACLE使用dblink实现跨服务器访问数据
- Enterprise Library 4.1数据访问应用程序块快速入门【1】使用DbDataReader检索多行
- 在JSP中访问Oracle ,SqlServer ,DB2, Informix ,Access 数据
- .Net 中访问Oracle 数据表,出现OCI-22053: overflow error
- 让oracle访问到sqlserver中的数据(异构服务总结)
- .net中利用oracle产品自带的数据访问组件(Oracle.DataAccess.dll)提升批量更新操作的执行效率
- Oracle中如何访问已删除的数据
- asp访问oracle数据的问题
- 使用ADO.NET存储大数据到ORACLE,文本,图象,并检索出来。
- ORACLE访问SYBASE数据
- 基于Oracle OCI的数据访问C语言接口ORADBI
- [DB][OARCLE]Oracle中树形数据(父子项数据)检索的CONNECT BY PRIOR 递归算法
- Oracle VPD实现数据细粒度访问(更好的权限控制)