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.rhkb.cn/news/338722.html

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

相关文章

Java 22的FFM API,比起Java 21的虚拟线程

哪个对Java未来的发展影响更大?两个 Java 版本中的重要特性:Java 21 的虚拟线程和 Java 22 的 FFM API。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给…

原生APP开发和Flutter开发的比较

原生APP开发和Flutter开发各有优缺点,适用于不同的场景和需求。下面是两者的详细比较,从开发语言、性能、开发效率、维护和更新、社区和支持等多个方面进行分析。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。…

【康耐视国产案例】智能AI相机机器视觉精准快速实现包裹标签的智能粘贴

康耐视推出的3D-A1000是专业的、匹配物流行业各类分拣机及包裹检测应用的全功能视觉检测系统,其能够准确检测分拣机上是否有包裹、包裹是否超出边界、空车检测、是否有遗留物品等。由于搭载了专利的三维结构光技术,产品具有更强大的创新性以满足持续更新…

综合交易模型--雪球跟单参数说明支持qmt,同花顺

经过测试,目前完成了这个策略。支持多策略,支持全市场,包括股票,etf,可转债 全部的参数 { "雪球跟单":"跟单原理", "原理":"比重变大默认买入,变小默认卖出,持股…

fintuning chatglm3

chatglm3介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用…

【uni-app】Pinia 持久化

小程序端 Pinia 持久化 说明:Pinia 用法与 Vue3 项目完全一致,uni-app 项目仅需解决持久化插件兼容性问题。 持久化存储插件 安装持久化存储插件: pinia-plugin-persistedstate pnpm i pinia-plugin-persistedstate插件默认使用 localStor…

Anaconda创建python环境默认C盘,如何修改路径

文章目录 前言解决方案1.找到Anaconda的根目录2. 找到根目录文件夹,右键-属性-安全 测试-重新创建新的python环境 前言 使用 Anaconda创建python环境,默认在C盘。 如何修改到别的路径呢? base环境 是安装 Anaconda是安装的默认环境&#x…

西瓜播放器xgplayer设置自动播放踩坑

上图是官网(西瓜视频播放器官方中文文档)的介绍,相信大家都是按照官网配置去做的,但是并没有什么用,插件很好用,但是属性不全,真的很悔恨,找遍 api 都没有找到自动播放的属性&#x…

LLM——深入探索 ChatGPT在代码解释方面的应用研究

1.概述 OpenAI在自然语言处理(NLP)的征途上取得了令人瞩目的进展,这一切得益于大型语言模型(LLM)的诞生与成长。这些先进的模型不仅是技术创新的典范,更是驱动着如GitHub Copilot编程助手和Bing搜索引擎等广…

linux磁盘阵列

磁盘阵列 可以用不同的磁盘,组成一个逻辑上的硬盘。高可用,冗余 lvm 扩容 raid 高可用 磁盘的组成方式不同,也就是不同的raid级别 raid级别 使用硬盘数量 磁盘利用率 冗余能力 读写性能 raid0 N 100% 0 读写最好 raid1 N(偶数) 50% 坏…

电商推荐系统+电影推荐系统【虚拟机镜像分享】

电商推荐系统电影推荐系统【虚拟机镜像分享】 所有组件部署好的镜像下载(在下面),仅供参考学习。(百度网盘,阿里云盘…) 博主通过学习尚硅谷电商推荐电影推荐项目,将部署好的虚拟机打包成ovf文…

通用代码生成器应用场景三,遗留项目反向工程

通用代码生成器应用场景三,遗留项目反向工程 如果您有一个遗留项目,要重新开发,或者源代码遗失,或者需要重新开发,但是希望复用原来的数据,并加快开发。 如果您的项目是通用代码生成器生成的,…

Leecode---技巧---只出现一次的数字 / 多数元素

题解&#xff1a; 利用异或运算 a⊕a 0 的性质&#xff0c;可用来消除所有出现了两次的元素&#xff0c;最后剩余的即为所得。 class Solution { public:int singleNumber(vector<int>& nums){// 初始化为0int ans 0;for(int x: nums){// 异或操作ans ^ x;}retur…

上网是不是必须路由器和光猫之一负责拨号?

链接&#xff1a;https://www.zhihu.com/question/624856022/answer/3245182557 上网并非一定要“拨号”&#xff0c;使用固定IP地址可以直接上网&#xff0c;不需要拨号。你们公司的宽带属于商用宽带&#xff0c;运营商&#xff08;电信&#xff09;给配置了固定的IP&#…

【计算机毕业设计】基于SSM++jsp的校园驿站管理系统【源码+lw+部署文档】

目录 第1章 绪论 1.1 课题背景 1.2 课题意义 1.3 研究内容 第2章 开发环境与技术 2.1 MYSQL数据库 2.2 JSP技术 2.3 SSM框架 第3章 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程 3.2.1 操作流程 3.2.2 登录流程 3.2.3 删除信息流…

vue-标签选择

效果 选中后 代码 <span :class"[item.bealtrue?p_yx_span span_active :span p_yx]" click"onTagSelect(index)" v-for"(item,index) in tagList" :key"index" >{{item.name}} </span> // 列表值 tagList:[ {id: 1, na…

Apache Doris 基础 -- 数据表设计(数据模型)

Versions: 2.1 1、模型概览 本主题从逻辑角度介绍了Doris中的数据模型&#xff0c;以便您可以在不同的业务场景中更好地使用Doris。 基本概念 本文主要从逻辑的角度描述Doris的数据模型&#xff0c;旨在帮助用户在不同的场景更好地利用Doris。 在Doris中&#xff0c;数据在…

网络空间安全数学基础·循环群、群的结构

3.1 循环群&#xff08;重要&#xff09; 3.2 剩余类群&#xff08;掌握&#xff09; 3.3 子群的陪集&#xff08;掌握&#xff09; 3.4 正规子群、商群&#xff08;重要&#xff09; 3.1 循环群 定义&#xff1a;如果一个群G里的元素都是某一个元素g的幂&#xff0c;则G称为…

Java——常见进制

在计算机领域有四种比较常见的进制&#xff0c;分别是二进制、八进制、十进制和十六进制。 一、二进制&#xff08;Binary&#xff09; 二进制&#xff08;Binary&#xff09;是一种基数为2的数值系统&#xff0c;仅使用两个符号&#xff1a;0和1。所以它的进位规则就是逢二进…

Navicat连接Oracle

目标&#xff1a; 1.Navicat连接Oracle数据库&#xff0c;报错 无监听程序。 一、下载安装Navicat15 https://zhuanlan.zhihu.com/p/675991635 下载安装资源 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1u1q 二、测试SQL PLUS连接数据库 在全部程序--》Ora…