spoon工具的常用基础操作

一些常用转换工具

在这里插入图片描述

1、emp表输入->excel表输出

emp表输入,可以进行预览查看数据有没有过来在这里插入图片描述excel表输出
在这里插入图片描述
在这里插入图片描述
成功执行后,可以到保存的excel位置进行查看。

2、excel输入->表输出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行转换后可以在oracle进行查看是否有成功创建这个表
在这里插入图片描述

3、对部门最高工资进行分组==表输入->排序记录->分组->文本文档输出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、对emp表和dept表进行表连接

  1. 新建两个表输入,一个是对emp表的查询,一个是对dept查询
  2. 分别对两个表进行以deptno进行排序记录
  3. 拖拽一个记录集连接的图标在这里插入图片描述
  4. 运行转换成功后可进行表预览查看在这里插入图片描述

5、查找每个职位排名第一的信息==表输入->排序记录->根据字段值来改变序列->过滤记录->输出

  1. 表输入查找emp表数据
  2. 对job下的工资进行排序,也就是两个字段都要加进去,job在前,sal降序在后,不然数据会出问题。在这里插入图片描述
  3. 根据字段值来改变序列在这里插入图片描述
  4. 过滤记录里面,根据排名结果进行过滤在这里插入图片描述
  5. 运行转换查看结果在这里插入图片描述

6、列转行

  1. 先到oracle对demo和demo1进行建表

CREATE TABLE "DEMO" (  "ID" NUMBER(*,0), "NAME" VARCHAR2(20), "NUMS" NUMBER(*,0)) ;
insert into DEMO (id, name, nums)
values (1, '苹果', 1000);
insert into DEMO (id, name, nums)
values (2, '苹果', 2000);
insert into DEMO (id, name, nums)
values (3, '苹果', 4000);
insert into DEMO (id, name, nums)
values (1, '橘子', 5000);
insert into DEMO (id, name, nums)
values (2, '橘子', 3000);
insert into DEMO (id, name, nums)
values (3, '葡萄', 3500);
insert into DEMO (id, name, nums)
values (4, '芒果', 4200);
insert into DEMO (id, name, nums)
values (4, '芒果', 5500);
commit;select * from DEMO;create table demo1 as 
select  id,sum(case when name='苹果' then nums end) 苹果,sum(case when name='橘子' then nums end) 橘子, sum(case when name='葡萄' then nums end) 葡萄,sum(case when name='芒果' then nums end) 芒果 
from  demo
group by id
order  by id;select * from demo1;
--列转行
select * 
from demo1
unpivot include nulls (nums for name in (苹果,橘子,葡萄,芒果));
  1. 对demo1进行表输入sql查询
  2. 列转行在这里插入图片描述
    在这里插入图片描述
  3. 运行转换
    转换前在这里插入图片描述

转换后在这里插入图片描述

7、行转列(对demo的name字段行转列)

sql语句的行转列

--unpivot方法
select * 
from demo1
unpivot include nulls (nums for name in (苹果,橘子,葡萄,芒果));--聚合函数+case when
select  id,sum(case when name='苹果' then nums end) 苹果,sum(case when name='橘子' then nums end) 橘子,sum(case when name='葡萄' then nums end) 葡萄,sum(case when name='芒果' then nums end) 芒果 
from demo
group by id
order by id;
  1. 对表输入demo1的数据
  2. 因为要用到聚合函数所以需要用到排序记录,对不动的列id进行排序
  3. 行转列在这里插入图片描述
  4. 进行表输出demo2在这里插入图片描述

8、case when 的使用

10部门 员工姓名转小写并向右填充* 至九位 ,job转首字母大写
20部门 员工姓名S替换成* ,M-Z 替换成#
30部门 职位SALESMAN替换成销售

  1. 表输入emp数据

  2. case when在这里插入图片描述

  3. 对不同的条件进行不同字符操作在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 输出到一直excel表,运行结果输出在这里插入图片描述

9、全量更新。会复制源表内容到目标表。根据ETL_DATE字段,目标表的数据=原来旧的的表数据+本次复制的所有源表数据

  1. 准备测试数据

--建立源表-------------------
DROP TABLE EMP_YUAN;
CREATE TABLE EMP_YUAN AS
SELECT T.EMPNO,T.JOB,T.SAL,SYSDATE-2 HIRE_DATE,SYSDATE-2 UP_DATE
FROM EMP T WHERE DEPTNO = 10;--建立目标表-----------------
DROP TABLE EMP_MUBIAO;
CREATE TABLE EMP_MUBIAO AS
SELECT T.EMPNO,T.JOB, T.SAL,T.HIRE_DATE,T.UP_DATE,SYSDATE-1 ETL_DATE
FROM EMP_YUAN T;-------------------------------------------------------
SELECT * FROM EMP_YUAN; ----业务数据发生的表
SELECT * FROM EMP_MUBIAO;----备份或数仓中的历史表
-------------------------------------------------------INSERT INTO EMP_YUAN
SELECT T.EMPNO,T.JOB, T.SAL,SYSDATE-1 HIRE_DATE,SYSDATE-1 UP_DATE
FROM EMP T WHERE DEPTNO = 20;
-----新入职了五个员工UPDATE EMP_YUAN SET SAL=2000,UP_DATE = SYSDATE-1 WHERE EMPNO = 7934;
----员工7934的工资发生了变化
COMMIT;
  1. 表输入查找源表emp_yuan数据
  2. 获取系统时间,建立一个新字段ETL_DATE和目标表的字段对应在这里插入图片描述
  3. 表输出,用源表数据覆盖目标表内容在这里插入图片描述在这里插入图片描述

10、增量更新。对比原表,更新和插入新的内容。

  1. 查询源表数据在这里插入图片描述
  2. 获取系统时间etl_date,用来匹配目标表字段在这里插入图片描述
  3. 插入/更新在这里插入图片描述

利用‘作业’定时发送邮件

  1. 新建一个作业
  2. 拖入 start、转换、成功、发送邮件
  3. 转换随便放入一个有效的转换文件
  4. 发送邮件的前提是要当QQ后台,账户->设置->第三发服务->开启服务后保留授权码等会要用在这里插入图片描述
  5. 地址填写在这里插入图片描述
  6. 服务器在这里插入图片描述
  7. 邮件消息在这里插入图片描述
  8. 都填写好后,运行,信息会发送到对应的收件人QQ邮箱里。

利用作业循环打印不同角色下数据库表数据

三个用户 u1 u2 u3 密码 分别也是 u1 u2 u3
这三个用户下 都有一张emp表 分别是 三个部门的用户信息
查询用户下emp表中各有多少条数据 输出列三列 用户名 uname 表名 tname 条数 tcount

  1. 首先先创建不同角色的对应的数据库数据
create user u1 identified by s1;
create user u2 identified by s2;
create user u3 identified by s3;grant dba to u1;
grant dba to u2;
grant dba to u3;create table u1.emp as  select * from hu.emp where deptno=10; 
create table u2.emp as  select * from hu.emp where deptno=20; 
create table u3.emp as  select * from hu.emp where deptno=30;select * from u1.emp;
select * from u2.emp;
select * from u3.emp;create table tt(username varchar2(20),tablename varchar2(20),tcount   number);
select * from tt;

如果无法create用户,权限不够的话就进行授权。cmd进入命令框,执行下面三句命令。

sqlplus /nolog
SQL>conn /as sysdba;
SQL>grant all privileges to hu;
  1. 准备一张excel表包含用户名和密码在这里插入图片描述
  2. 一共有五个步骤,下面详细解释。在这里插入图片描述
  • 1_获取记录,新建一个转换,excel表输入然后复制记录到结果,保存转换文件在这里插入图片描述- 2_设置变量,新建一个转换,拖拽从结果获取记录设置变量在这里插入图片描述
    在这里插入图片描述

  • 3_查询结果输出,新建一个数据库连接,变量命名用户名和密码。注意查询语句为select '${u}' username,'emp' tablename,count(1) tcount from emp在这里插入图片描述
    在这里插入图片描述

  • 4_循环获取数据,先创建一个作业,这个作业流程,包括进行设置变量转换,查询结果输出转换,方便后续循环。
    在这里插入图片描述
    在这里插入图片描述

  • 5_执行整个流程,读取记录->循环获取数据输出结果在这里插入图片描述在这里插入图片描述

  • 整个流程写完后,执行作业5_执行整个流程,成功后,可以在数据库查看结果在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JAVA WEB实用与优化技巧】Maven自动化构建与Maven 打包技巧

文章目录 一、MavenMaven生命周期介绍maven生命周期命令解析 二、如何编写maven打包脚本maven 配置详解setting.xml主要配置元素setting.xml 详细配置 使用maven 打包springboot项目maven 引入使用package命令来打包idea打包 三、使用shell脚本自动发布四、使用maven不同环境配…

【协议开发系列】梳理关于TCP和UDP两种协议的区别和使用场景

起源 前二天项目上在核对外部对接服务的五元组列表的时候,有一位客户提问对于同样的服务同时支持tcp和udp二种方式,有什么优点和缺点,应该如何选择?这个问题突然让我愣了一下,确实好久没有“温故”了,相关…

商业新闻|当我们在讨论卖车时我们在讨论什么?

‍‍今天是2024年第22周 这是Yura「输出倒逼输入」计划的第10篇文章 全年进度:10/52 01 投资人为什么不断入局烧钱又亏损的新能源? 造车的烧钱速度超乎想象。除了最近的小米,这些年国内大大小小的玩家好像都在以不同的形式或直接或间接的参与…

【视频创作思维流程】教你从0培养视频创作思维

【视频创作思维流程】教你从0培养视频创作思维 1.创作认知2.培养自己的想象力2.1通过音乐辅助闭上眼睛想象2.2多看多见多模仿 3 视频脚本3.1简单的脚本3.2复杂脚本 4.拍摄预见能力4.1拍摄预见力思维用于转场4.2拍摄预见力思维给特效制作留住空间4.2拍摄预见力思维给字幕制作留住…

src挖掘-记一次付费资源的sign绕过

0x01 前言 最近都没怎么挖到过细小的漏洞,一直纠结于一些比较难以实现的点,天天在各种测试、上线服务器里面fuzz找遗漏的点(bushi) 大概上周突破了一处付费资源免费调用,定级了,故发出来水水文 0x02 绕过过程 逛着逛着主站&…

五种最新算法求解柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),提供MATLAB代码

一、WSA求解FJSP FJSP:波搜索算法(Wave Search Algorithm, WSA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码-CSDN博客 二、SBOA求解FJSP FJSP:蛇鹫优化算法(Secretary bird optimization algorithm&a…

模糊小波神经网络(MATLAB 2018)

模糊系统是一种基于知识或规则的控制系统,从属于智能控制,通过简化系统的复杂性,利用控制法来描述系统变量之间的关系,采用语言式的模糊变量来描述系统,不必对被控对象建立完整的数学模型。相比较传统控制策略&#xf…

WIN系统 -> 以太网未识别的网络问题

1.方法1 2. 3. 根据诊断提示解决问题。 方法2. 右键以太网属性

GiantPandaCV | 浅谈分辨率对模型影响以及训练方法

本文来源公众号“GiantPandaCV”,仅用于学术分享,侵权删,干货满满。 原文链接:浅谈分辨率对模型影响以及训练方法 一、前言 最近几个人在讨论模型训练的时候,提到了一个尺度对于模型的影响以及训练方法的收益&#…

一天挣几十元的网上兼职副业有哪些?推荐几个适合普通人做的兼职副业,有线上的也有线下的,建议收藏哦~

一天几十的兼职,不是几百的,这个会更容易实现。 相比网络上充斥着各种五花八门的兼职,教你轻松月入过万,一年几十万的...... 对于绝大多数没有一技之长的普通人,网络小白的话刚开始会很难的,慢慢来就可以…

Jenkins流水线pipeline--基于上一章的工作流程

1流水线部署 1.流水线文本名Jenkinsfile,将流水线放入gitlab远程仓库代码里面 2pipeline脚本 Jenkinsfile文件内容 pipeline {agent anyenvironment {key"value"}stages {stage("拉取git仓库代码") {steps {deleteDir()checkout scmGit(branches: [[nam…

自然语言处理(NLP)—— 置信度(Confidence)

1. 置信度(Confidence)的概念 置信度(Confidence)在机器学习和统计中通常指一个模型对其做出的预测是正确的确信程度。在分类任务中,置信度通常由模型赋予特定类别的概率值来表示。例如,在文本分类或实体识…

阿里云短信服务使用(Java)

文章目录 一、流程1.打开短信服务2.提交材料申请资质3.资质通过后,申请短信签名并设置短信模板4.右上角设置AccessKey5.充值 二、参考官方文档调用API1.引入maven依赖2.调用API补充 一、流程 1.打开短信服务 登陆注册阿里云 搜索“短信服务”,点击“免…

WHAT - 容器化系列(一)

这里写目录标题 一、什么是容器与虚拟机1.1 什么是容器1.2 容器的特点1.3 容器和虚拟机的区别虚拟机(VM):基于硬件的资源隔离技术容器:基于操作系统的资源隔离技术对比总结应用场景 二、容器的实现原理1. Namespace(命…

TVS管的功率计算与选型

“选择多大功率的TVS管才算合适?”。关于TVS功率的选择,不晓得之前你考虑过没。反正我这边是感觉网上关于TVS管参数、选型等文章比较多,但关于TVS管功率计算及功率选型的文章比较少。但往往在这些点上更能体现面试者的功力。 研究过TVS规格书…

go语言linux安装

下载:https://go.dev/dl/ 命令行使用 wget https://dl.google.com/go/go1.19.3.linux-amd64.tar.gz解压下载的压缩包,linux建议放在/opt目录下 我放在/home/ihan/go_sdk下 sudo tar -C /home/ihan/go_sdk -xzf go1.19.3.linux-amd64.tar.gz 这里的参数…

【LeetCode热题100总结】239. 滑动窗口最大值

题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7]…

Vue3-Ref Reactive toRef toRefs对比学习、标签ref与组件ref

响应式数据: Ref 作用:定义响应式变量。 语法:let xxx ref(初始值)(里面可以是任何规定内类型、数组等)。 返回值:一个RefImpl的实例对象,简称ref对象或ref,ref对象的value属性是响应式的。 注意点&am…

python安装pystan教程

简介 PyStan是Stan编程语言的Python接口,Stan是一种用于统计建模和数据分析的概率编程语言。PyStan使用户能够在Python环境中定义、编译和采样Stan模型。 安装步骤 首先,需要先安装 Cython pip install Cython -i https://mirrors.aliyun.com/pypi/sim…

三十三篇: 解锁决策之门:专家系统深度探索与未来展望

解锁决策之门:专家系统深度探索与未来展望 在今天这个日益复杂的世界中,我们对决策的速度和质量提出了更高的要求。在众多解决方案中,专家系统作为人工智能的一大分支,扮演着不可或缺的角色。它不仅是技术创新的产物,…