一个oracle面试题

article/2025/10/3 7:30:54

某天,群里突然冒出一个道友询问oracle的面试题,特此记录一下

oracle面试题
一系列过程:
第一步建表:

DROP TABLE serv;
DROP TABLE terminal; 
CREATE TABLE serv(serv_id NUMBER(10),prod_id NUMBER(10),user_type VARCHAR2(30),terminal_name VARCHAR2(20)
)
tablespace ORAC_DATApctfree 10initrans 1maxtrans 255storage(initial 11Mnext 1Mminextents 1maxextents unlimited);
COMMENT ON TABLE serv IS '用户资料表';
COMMENT ON COLUMN serv.serv_id IS '用户标识';
COMMENT ON COLUMN serv.prod_id IS '产品标识';
COMMENT ON COLUMN serv.user_type IS '用户类型';
COMMENT ON COLUMN serv.terminal_name IS '终端类型';
CREATE TABLE terminal(serv_id NUMBER(10),terminal_name VARCHAR2(20) 
)
tablespace ORAC_DATApctfree 10initrans 1maxtrans 255storage(initial 11Mnext 1Mminextents 1maxextents unlimited);
COMMENT ON TABLE terminal IS '终端类型临时表';
COMMENT ON COLUMN terminal.serv_id IS '用户标识';
COMMENT ON COLUMN terminal.terminal_name IS '终端类型';

第二步,插入数据
我采用的手工添加,所用的方法如下
oracle 直接更新查询结果

SELECT * FROM serv FOR UPDATE;
SELECT * FROM terminal FOR UPDATE; 

serv 表结果如下:

结果
terminal 表结果如下
结果
第三步,创建存储过程如下:

--创建存储过程
CREATE OR REPLACE PROCEDURE sp_terminal
IS
BEGIN--更新serv表  方法一UPDATE serv s SET s.terminal_name = (SELECTCASEWHEN s.PROD_ID = 1 AND s.USER_TYPE = 'A' THEN '固话'WHEN s.PROD_ID = 1 AND s.USER_TYPE = 'B' THEN '小灵通'WHEN S.PROD_ID = 2 THEN '宽带'WHEN S.USER_TYPE = 'C' THEN 'CDMA'ELSE '-1'END terminal_nameFROM SERV S1WHERE S1.PROD_ID = S.PROD_ID AND S1.USER_TYPE = S.USER_TYPE) WHERE EXISTS (SELECT NULL FROM SERV S1WHERE S1.PROD_ID = S.PROD_ID AND S1.USER_TYPE = S.USER_TYPE);COMMIT;
--更新serv表  方法二
UPDATE SERV S --用户资料表
SET S.TERMINAL_NAME=(SELECTCASE WHEN S.PROD_ID = 1 AND  S.USER_TYPE='A' THEN '固话'WHEN S.PROD_ID = 1 AND  S.USER_TYPE='B' THEN '小灵通'WHEN S.PROD_ID = 2   THEN '宽带'WHEN S.USER_TYPE='C' THEN 'CDMA'ELSE '-1'END  AS TERMINAL_NAMEFROM TERMINAL T  --终端类型临时表WHERE  S.SERV_ID=T.SERV_ID)WHERE EXISTS (SELECT 1FROM TERMINAL T1 WHERE  S.SERV_ID=T1.SERV_ID);COMMIT;
--更新terminal表 方法一UPDATE terminal  T SET T.TERMINAL_NAME = (SELECTs1.TERMINAL_NAMEFROM SERV S1INNER JOIN terminal T1ON S1.SERV_ID = t1.SERV_IDWHERE t1.SERV_ID = t.SERV_ID) WHERE EXISTS (SELECTs1.TERMINAL_NAMEFROM SERV S1INNER JOIN terminal T1ON S1.SERV_ID = t1.SERV_IDWHERE t1.SERV_ID = t.SERV_ID);
COMMIT; 
--更新terminal表 方法二
UPDATE terminal  T SET T.TERMINAL_NAME = (SELECTCASEWHEN s.PROD_ID = 1 AND s.USER_TYPE = 'A' THEN '固话'WHEN s.PROD_ID = 1 AND s.USER_TYPE = 'B' THEN '小灵通'WHEN S.PROD_ID = 2 THEN '宽带'WHEN S.USER_TYPE = 'C' THEN 'CDMA'ELSE '-1'END terminal_nameFROM SERV SWHERE t.SERV_ID = s.SERV_ID) WHERE EXISTS (SELECTCASEWHEN s.PROD_ID = 1 AND s.USER_TYPE = 'A' THEN '固话'WHEN s.PROD_ID = 1 AND s.USER_TYPE = 'B' THEN '小灵通'WHEN S.PROD_ID = 2 THEN '宽带'WHEN S.USER_TYPE = 'C' THEN 'CDMA'ELSE '-1'END terminal_nameFROM SERV SWHERE t.SERV_ID = s.SERV_ID);
COMMIT; 
--------------
END sp_terminal;

后面,其他道友提出此种方法不适合数据量很大的情况,提出了一些方法,也记录在次

处于礼貌这里将聊天内容截图,仅仅展示相关文字

数据量大的话,这种更新就挂了。
buck into for all
数量大 采用 数组 批量更新
弄成分批提交。
引用块内容
bulk collect into for all
引用块内容
这里写图片描述


http://chatgpt.dhexx.cn/article/NUQPCR9r.shtml

相关文章

oracle试题和答案,Oracle面试题及答案

Oracle面试题及答案模块和题目 l基本SQL查询 l运算符与函数 l子查询 l连接查询 建表语句emp.sql PartI(第一天) 01.查询员工表所有数据,并说明使用*的缺点 答: select*fromemp; 使用*的缺点有 a)查询出了不必要的列 b)效率上不如直接指定列名 02.查询职位(JOB)为PRE…

Oracle面试题整理

目录 Oracle面试题整理 1.MySQL和Oracle的区别: 2.Oracle中function和procedure的区别? 3. 比较truncate和delete命令 ? 4.oralce中 rowid, rownum的定义 5. 事务的特性(ACID)是指什么 6. 列举几种表连接方式…

Oracle面试题及答案整理,速速收藏

点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 好久没有给大家发面试题了,最近收集了一套Oracle的面试题,特地整理出来分享给大家,希望对你有帮助。 1、表:table1(…

Oracle数据库面试题

1、什么是数据库? 使用数据结构存储数据的仓库。 2、什么是关系型数据库? 使用关系模型存储数据的数据库。 关系模型指表与表之间的关系,包含一对一、一对多、多读多。 3、什么是非关系型数据库? 使用非关系模型保存数据的数据…

Oracle 面试题汇总

1,delete 与Truncate区别? 1)Truncate 是DDL 语句,DELETE 是DML语句。 2) Truncate 的速度远快于DELETE; 原因是: 当执行DELETE操作时所有表数据先被COPY到回滚表空间,数据量不同…

取消WIN10上shift键切换中英文输入法的设置

关闭全角半角切片: 设置 -> 时间和语言 -> 语言 -> 选项 -> 微软拼音输入法选项 -> 常规 -> 使用半角输入模式(开) Win10自带的输入法本人感觉还不错,但是在常用shift键实现其他相应功能的时候,(如我经常用shift切换大小写…

Visual Studio 中英文切换

Visual Studio 中英文切换 今天发现Visual Studio用中文太没意思,于是研究了下如何改为英文版,这里以Visual Studio2017为例,如下: Visual Studio默认是不支持英文的,需要先安装下语言包: 找到Visual Stud…

pycharm中英文切换

1、关闭当前project 2、按照下图,如果有勾,就把勾去除,重新打开project,就是英文版了,反之是中文界面

springboot-页面中英文切换(国际化原理)

在springboot中有MessageSourceAutoConfiguration这个自动配置类,通过搜索找到这个类 首先可以看到这个类在配置文件中通过spring.messages.xxx来对对应properties中的属性进行配置,我们点进去properties这个对象里面,也就是类MessageSource…

winform中英文切换(实测简单可用)

Language改为英语或者英语-美国都行 2.再改为中文 就会在form1.cs里得到两个文件。分别在中文里填写中文,英文里填写英文,记得给控件后面加.Text 3.拖两个radiobutton控件放上来,加上这两段代码就可以实现中英文切换啦 // Language_Index 1/…

Visual studio的中英文切换

我们用visual studio , 有不同语言的版本。其实不同语言可以互相切换。 中文版去英文版是这样的: 打开vs菜单中的工具->选项 区域设置点击语言选择 然后选择英文 点击切换 英文版去中文版是:Tools-> Option International setting…

C# 中英文切换

简介: 一个项目如果要面对外国的客户时,需要语言切换。本文使用XML,XML是可扩展标记语言(Extensible Markup Language)的缩写,仅用于存储数据。 代码下载链接。 中文 英文 1.使用 新建三个文件。文件的路径…

html中文输入转换成英文,中英文转换,键盘如何中英文切换!

中英文的切换 首先在电脑上安装一个搜狗输入法,可以在搜狗搜索中下载安装。02 输入法安装完。 进入属性设置中,点击【按键】设置选项,首先看到的就是中英文切换设置,这时看到。shift键。楼上,ctrl空格 是切换中英文输入…

Android中英文切换

前言 在Android开发中,针对不同的客户群体,可能需要使用多国语言来对项目进行支持,那么,对于Android studio,如何实现这个功能呢?比如我们要实现Android程序中英文切换,该怎么做呢?…

Centos7 在英文环境中实现中英文切换

学习记录,参考:CentOS7英文环境下使用中文输入法 - InsideOut - 博客园 1. 安装中文拼音 #yum install ibus 2. 复制(原理不太清楚) #cp /usr/share/locale/zh_CN/LC_MESSAGES/ibus* /usr/share/locale/en_US/LC_MESSAGES 3.…

运用i18n 实现国际化(中英文切换)

使用 vue-i18n 进行Vue国际化处理,使项目切换中英文 1.下载安装插件 命令进入项目目录,执行以下命令安装vue 国际化插件vue-i18n npm install vue-i18n --save 2. 项目增加国际化翻译文件 在项目的src下添加lang文件夹增加中文翻译文件(zh.j…

js实现中英文切换

js实现中英文切换 1.html <!DOCTYPE html><head><title>中英文切换</title><meta charset"UTF-8" /><script type"text/javascript" src"js/jquery.js"></script><script type"text/javasc…

Qt中英文切换(涉及多种场景)

qt中英文切换涉及到一个软件两个文件&#xff0c;分别是QtLinguist、.ts文件和.qm文件。 1、在Pro中添加 TRANSLATIONS en.ts \ch.ts添加这个文件后qmake&#xff0c;然后如下操作点击更新&#xff1a; 这个时候会生成2两个文件en.ts和ch.ts。 2、将这两个文件添加到项目中…

【Windows】中英文切换快捷键Caps

在 Windows 11 下中英文切换使用 Shift 快捷键&#xff0c;在 MacOS 是 Caps 快捷键。使用下面的步骤&#xff0c;就可以将 Windows 的中英文切换快捷键也使用和 Mac 的一样&#xff1a; 下载并安装Powertoys在键盘管理器中增加重新映射键&#xff1a; 设置好之后立即生效&am…

Win10系统中英文切换

购买的大型仪器设备&#xff0c;可能是海关进口的&#xff0c;其配套控制软件可能会运行在英文界面环境&#xff0c;在原配控制电脑故障或者更换时&#xff0c;存在安装英文OS操作系统的需求&#xff0c;经搜索发现Win10操作系统可以直接切换中英文语言&#xff0c;这里记录下&…