网站首页 > 技术文章 正文
题目如下所示:
假定SERV表有a、b、c三个字段:SERV(a number(10),b number(10),c number(10))。表SERV的内容如下:
a | b | c |
1 | 10 | 70 |
2 | 30 | 50 |
1 | 10 | 80 |
以下两段PL/SQL的功能是根据a的值,查找出对应b的值赋予变量x,请分别判断这两段PL/SQL是否能正常执行,若不能正常执行,请指出错误的原因并修改。
(1)
declare
x number;
begin
select b into x from serv where a=1;
dbms_output.put_line(to_char(x));
end;
(2)
declare
x number;
begin
select b into x from serv where a=2;
dbms_output.put_line(to_char(x));
end;
答案如下所示:
这2段程序除了WHERE语句后的值不同以外,其它均一样。对于程序(1),当a=1时,返回了2行记录,对于程序(2),当a=2时,返回了1行记录。对于变量x而言,只能接受一个值,所以,程序2执行不报错,程序(1)执行报错:ORA-01422: exact fetch returns more than requested number of rows。
对于程序(1)有2种修改方法,第一种就是将“select b into x from serv where a=1;”修改为“select distinct b into x from serv where a=1;”。第二种方法就是返回集合类型,修改后的程序块如下所示:
DECLARE
VARCURSOR SYS_REFCURSOR;
X SERV%ROWTYPE;
BEGIN
OPEN VARCURSOR FOR
SELECT T.* FROM SERV T WHERE A=1;
LOOP
FETCH VARCURSOR
INTO X;
EXIT WHEN VARCURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(R.B);
END LOOP;
END;
猜你喜欢
- 2024-11-02 2020年您应该知道的主要SQL面试问题
- 2024-11-02 数据库笔试面试33——关于Oracle Scheduler
- 2024-11-02 MySQL常见面试题以及答案汇总(一)
- 2024-11-02 中移物联网校园招聘笔试-java 中移物联网社招
- 2024-11-02 最全BAT数据库面试89题:mysql、大数据、redis!含答案大赠送!
- 2024-11-02 「复盘」面试BAMT回来整理398道高频面试题,助你拿高薪offer
- 2024-11-02 收集的MySQL的面试题分享给大家(建议收藏)
- 2024-11-02 数据库笔试面试109——在Oracle中,有关直接路径
- 2024-11-02 外包面试之旅 外包岗面试会简单些吗
- 2024-11-02 面试官可以通过应聘者的身体语言判定是否说谎
你 发表评论:
欢迎- 624℃几个Oracle空值处理函数 oracle处理null值的函数
- 616℃Oracle分析函数之Lag和Lead()使用
- 605℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 601℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 596℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 589℃【数据统计分析】详解Oracle分组函数之CUBE
- 577℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 565℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- 国产化红利到底在哪?好多人都在瞎折腾
- Oracle 推出 Java 24,增强 AI 支持和后量子加密
- JAVA桥接模式适用场景,优缺点是什么你知道吗,这篇文章彻底讲透
- SpringBoot条件化配置(@Conditional)全面解析与实战指南
- Navicat Data Modeler使用教程十二:配置
- 软件测试|数据库的内连接,左连接,右链接分别是什么
- 每日学习“IT”是什么呢?(每日学习每日一词)
- SQLite:小众?其实它比你想象的更普及,连这个领域都有人用!
- 【推荐】一款实用且跨平台的数据库管理神器,支持Web浏览器
- Spring Batch中的JobRepository:批处理的“记忆大师”是如何工作
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)