JLBANK-IRS统计报表相关的两个存储过程

1、  债项评级统计报表

CREATE OR REPLACE PROCEDURE SP_DEBT_RATING_RESULT_QUERY(
P_RATING_TIME            VARCHAR2,
P_ORGSEQ                 VARCHAR2,
P_SMALL_CORP_LOAN_CD     VARCHAR2,
P_CUR OUT IRS_REF.T_CURSOR) AS
V_ORGSEQ                 VARCHAR2(12) := NVL(P_ORGSEQ,'99999');
V_SMALL_CORP_LOAN_CD     VARCHAR2(12) := NVL(P_SMALL_CORP_LOAN_CD,'!');
BEGIN/***********************************************************************//***********构造新的客户信息表******************************************//***********************************************************************/--取出客户表中最新的记录INSERT INTO T_CUSTOMER_NEWESTSELECT  A.POINT_CMIS_IDFROM CUSTOMER AWHERE A.CUST_STATUS='1'AND (POINT_CMIS_ID, CREATE_TIME) IN(SELECT B.POINT_CMIS_ID, MAX(B.CREATE_TIME)FROM CUSTOMER BGROUP BY B.POINT_CMIS_ID);--取出贷款合同表中,状态为已发放的合同信息 (控制条件:经办机构、小企业标志)INSERT INTO T_LOAN_CONTRACT
SELECT A.CUST_ID, V_ORGSEQ, A.SMALL_CORP_LOAN_CD, A.CONTRACT_CODEFROM LOAN_CONTRACT AINNER JOIN OM_ORGANIZATION BON A.OPERATE_DEPT_NO = B.ORGCODEWHERE A.LOAN_CONTRACT_STATUS = '21002'AND B.ORGSEQ LIKE V_ORGSEQ||'%'AND A.SMALL_CORP_LOAN_CD IN (DECODE(V_SMALL_CORP_LOAN_CD,'1','1'),DECODE(V_SMALL_CORP_LOAN_CD,'2','2'),DECODE(V_SMALL_CORP_LOAN_CD,'2','3'),DECODE(V_SMALL_CORP_LOAN_CD,'2','4'),DECODE(V_SMALL_CORP_LOAN_CD,'!','1'),DECODE(V_SMALL_CORP_LOAN_CD,'!','2'),DECODE(V_SMALL_CORP_LOAN_CD,'!','3'),DECODE(V_SMALL_CORP_LOAN_CD,'!','4'));--进行过客户评级的客户信息INSERT INTO T_KH_INFOSELECT A.POINT_CMIS_ID, V_ORGSEQ, B.SMALL_CORP_LOAN_CD,B.CONTRACT_CODEFROM T_CUSTOMER_NEWEST AINNER JOIN T_LOAN_CONTRACT BON A.POINT_CMIS_ID = B.CUST_ID;  --根据客户ID取出经办机构、认证机构信息/***********************************************************************//***********算出每个级别笔数/所有级别总笔数     ************************//***********************************************************************/INSERT INTO T_ZBL_DEBTSELECT A1.RATING_TIME,A1.LGD_LEVEL,BS,BS/ZBS ZBL FROM (
SELECT A.RATING_TIME, A.LGD_LEVEL, COUNT(*) BSFROM DEBT_RATING_RESULT_HISTORY AINNER JOIN T_KH_INFO BON  A.CUST_ID=B.POINT_CMIS_ID--AND  A.LOAN_CONTRACT_ID=B.CONTRACT_CODEWHERE A.RATING_TIME = TO_DATE(P_RATING_TIME,'YYYYMMDD')      --传入条件:评级时间GROUP BY A.RATING_TIME, A.LGD_LEVEL) A1  --取分类结果表每个级别的笔数LEFT JOIN (SELECT A.RATING_TIME, COUNT(*) ZBSFROM DEBT_RATING_RESULT_HISTORY AINNER JOIN T_KH_INFO BON  A.CUST_ID=B.POINT_CMIS_ID--AND  A.LOAN_CONTRACT_ID=B.CONTRACT_CODEWHERE A.RATING_TIME = TO_DATE(P_RATING_TIME,'YYYYMMDD')      --传入条件:评级时间GROUP BY A.RATING_TIME) A2    --取分类结果表所有级别的总笔数ON A1.RATING_TIME = A2.RATING_TIMEORDER BY A1.LGD_LEVEL;/***********************************************************************//***********算出每个级别的合同余额/所有合同的总余额          ***********//***********************************************************************/INSERT INTO T_ZBY_DEBTSELECT A1.RATING_TIME,A1.LGD_LEVEL,A1.SXYE,A1.SXYE / NVL(A2.ZSXYE,0) ZBY   --ALTER BY NISJ 测试用FROM (SELECT A.RATING_TIME,A.LGD_LEVEL,SUM(NVL(B.CORPUS_AMOUNT, 0) + NVL(B.OVERDUE_IN, 0) + NVL(B.OVERDUE_OUT, 0)) SXYEFROM DEBT_RATING_RESULT_HISTORY A  --算出分类结果表中每个级别的合同余额LEFT JOIN DUE_BILL BON A.LOAN_CONTRACT_ID = B.LOAN_CONTRACT_IDINNER JOIN T_KH_INFO CON A.CUST_ID = C.POINT_CMIS_ID--AND A.LOAN_CONTRACT_ID=C.CONTRACT_CODEWHERE A.RATING_TIME = TO_DATE(P_RATING_TIME,'YYYYMMDD')GROUP BY A.RATING_TIME,A.LGD_LEVEL) A1LEFT JOIN (SELECT A.RATING_TIME,SUM(NVL(B.CORPUS_AMOUNT, 0) + NVL(B.OVERDUE_IN, 0) + NVL(B.OVERDUE_OUT, 0)) ZSXYEFROM DEBT_RATING_RESULT_HISTORY A  --算出分类结果表中所有级别的合同余额LEFT JOIN DUE_BILL BON A.LOAN_CONTRACT_ID = B.LOAN_CONTRACT_IDINNER JOIN T_KH_INFO CON A.CUST_ID = C.POINT_CMIS_ID--AND A.LOAN_CONTRACT_ID=C.CONTRACT_CODEWHERE A.RATING_TIME = TO_DATE(P_RATING_TIME,'YYYYMMDD')GROUP BY A.RATING_TIME) A2ON A1.RATING_TIME = A2.RATING_TIMEORDER BY A1.LGD_LEVEL;/***********************************************************************//***********债项评级结果插入到T_DEBT_RATING_RESULT_QUERY临时表**********//***********************************************************************/INSERT INTO T_DEBT_RATING_RESULT_QUERYSELECT X.RATING_TIME,X.LGD_LEVEL,X.BS,DECODE(SUBSTR(ROUND(TO_NUMBER(X.ZBL*100),2)||'%',1,1),'.','0'||ROUND(TO_NUMBER(X.ZBL*100),2)||'%',ROUND(TO_NUMBER(X.ZBL*100),2)||'%')  CUSTSCALE,Y.SXYE,DECODE(SUBSTR(ROUND(TO_NUMBER(Y.ZBY*100),2)||'%',1,1),'.','0'||ROUND(TO_NUMBER(Y.ZBY*100),2)||'%',ROUND(TO_NUMBER(Y.ZBY*100),2)||'%')  REMIANSCALE,V_ORGSEQ,V_SMALL_CORP_LOAN_CDFROM T_ZBL_DEBT X --算出每个级别笔数/所有级别总笔数INNER JOIN T_ZBY_DEBT Y --算出每个级别的合同余额/所有合同的总余额ON X.RATING_TIME = Y.RATING_TIMEAND X.LGD_LEVEL = Y.LGD_LEVEL  --两个结果按评级结果级别联在一起WHERE X.RATING_TIME = TO_DATE(P_RATING_TIME, 'YYYY-MM-DD');/***********************************************************************//************************打开分页游标              *********************//***********************************************************************/OPEN P_CUR FORSELECT RATING_TIME, LGD_LEVEL, BS, CUSTSCALE, SXYE, REMIANSCALE, OPERATE_DEPT_NO, SMALL_CORP_LOAN_CD FROM T_DEBT_RATING_RESULT_QUERYUNION ALLSELECT MAX(A.RATING_TIME),NULL,SUM(A.BS),'100%',SUM(A.SXYE),'100%',MAX(A.OPERATE_DEPT_NO),MAX(A.SMALL_CORP_LOAN_CD) FROM  T_DEBT_RATING_RESULT_QUERY A;END;
/

2、  客户评级统计报表

CREATE OR REPLACE PROCEDURE SP_CUST_RATING_RESULT_QUERY(
P_RATING_TIME    VARCHAR2,
P_ORGSEQ         VARCHAR2,
P_ORG_APPROVAL   VARCHAR2,
P_CUR OUT IRS_REF.T_CURSOR) AS
V_ORGSEQ         VARCHAR2(12) := NVL(P_ORGSEQ,'99999');
V_ORG_APPROVAL   VARCHAR2(12) := NVL(P_ORG_APPROVAL,'!');
BEGIN/***********************************************************************//***********构造最新评级的、有效的统计的客户评级结果信息       *********//***********************************************************************/INSERT INTO T_CUST_RATING_RESULT_NEWEST_CSELECT A.ORG_APPROVAL, A.CUST_CUSTID,A.CONFIRM_TIME,A.FINAL_RATINGFROM CUST_RATING_RESULT AWHERE A.ORG_APPROVAL IN (DECODE(V_ORG_APPROVAL,'1','1'),DECODE(V_ORG_APPROVAL,'2','2'),DECODE(V_ORG_APPROVAL,'!','1'),DECODE(V_ORG_APPROVAL,'!','2'))AND A.CONFIRM_TIME <= TO_DATE(P_RATING_TIME , 'YYYYMMDD')AND (CUST_CUSTID, CONFIRM_TIME) IN(SELECT A.CUST_CUSTID, MAX(A.CONFIRM_TIME)FROM CUST_RATING_RESULT AWHERE A.RATING_STATUS = '5'AND A.CONFIRM_TIME IS NOT NULLAND A.FINAL_RATING IS NOT NULLGROUP BY A.CUST_CUSTID);/***********************************************************************//***********构造最新的、已经进行过客户评级过的客户信息表******************************************//***********************************************************************/--生成最新的客户临时表INSERT INTO T_CUSTOMER_NEWEST_CSELECT B.ORGSEQ, A.POINT_CMIS_IDFROM CUSTOMER AINNER JOIN OM_ORGANIZATION BON A.JBJG_NO=B.ORGCODEWHERE A.CUST_STATUS='1'AND B.ORGSEQ LIKE V_ORGSEQ||'%'AND (A.POINT_CMIS_ID, A.CREATE_TIME) IN(SELECT B.POINT_CMIS_ID, MAX(B.CREATE_TIME)FROM CUSTOMER BGROUP BY B.POINT_CMIS_ID);--生成新的、已经进行过客户评级过的客户信息表                  INSERT INTO T_KH_INFO_C   SELECT A.POINT_CMIS_ID, A.ORGSEQ, B.ORG_APPROVALFROM T_CUSTOMER_NEWEST_C A --客户表中最新的记录INNER JOIN T_CUST_RATING_RESULT_NEWEST_C B --分类结果表中,最新的分类结果信息ON A.POINT_CMIS_ID = B.CUST_CUSTID;        --根据客户ID取出经办机构、认证机构信息/***********************************************************************//***********算出每个级别笔数/所有级别总笔数     ************************//***********************************************************************/--1、算出已经评级和未评级的每个级别的个数INSERT INTO T_ZBL_CUST(CONFIRM_TIME, ORGSEQ, ORG_APPROVAL, FINAL_RATING, BS, ZBL)SELECT TO_TIMESTAMP(P_RATING_TIME,'YYYY-MM-DD'), V_ORGSEQ, V_ORG_APPROVAL, B.FINAL_RATING, COUNT(*) BS, NULLFROM T_KH_INFO_C ALEFT JOIN T_CUST_RATING_RESULT_NEWEST_C BON A.POINT_CMIS_ID = B.CUST_CUSTIDGROUP BY A.ORG_APPROVAL, B.FINAL_RATING
UNION ALL
SELECT TO_TIMESTAMP(P_RATING_TIME,'YYYY-MM-DD'), V_ORGSEQ, V_ORG_APPROVAL, 'WPJ', COUNT(*) BS, NULLFROM T_CUSTOMER_NEWEST_C ALEFT JOIN T_CUST_RATING_RESULT_NEWEST_C BON A.POINT_CMIS_ID = B.CUST_CUSTIDWHERE B.CUST_CUSTID IS NULL;--2、插入每个级别(包括未评级)占总数的比例INSERT INTO T_ZBL_CUST(CONFIRM_TIME, ORGSEQ, ORG_APPROVAL, FINAL_RATING, BS, ZBL)SELECT A.CONFIRM_TIME, A.ORGSEQ, A.ORG_APPROVAL, A.FINAL_RATING,A.BS, A.BS / B.ZBSFROM T_ZBL_CUST ALEFT JOIN (SELECT A1.CONFIRM_TIME, A1.ORGSEQ, A1.ORG_APPROVAL, SUM(A1.BS) ZBSFROM T_ZBL_CUST A1GROUP BY A1.CONFIRM_TIME, A1.ORGSEQ, A1.ORG_APPROVAL) BON A.CONFIRM_TIME = B.CONFIRM_TIMEAND A.ORGSEQ = B.ORGSEQAND A.ORG_APPROVAL = B.ORG_APPROVAL;--3、删除比例为空的信息DELETE T_ZBL_CUST WHERE ZBL IS NULL;/***********************************************************************//***********算出每个级别的合同余额/所有合同的总余额          ***********//***********************************************************************/--1、算出已经评级和未评级的每个级别的合同余额INSERT INTO T_ZBY_CUST(CONFIRM_TIME, ORGSEQ, ORG_APPROVAL, FINAL_RATING, SXYE, ZBY)SELECT TO_TIMESTAMP(P_RATING_TIME,'YYYY-MM-DD'), V_ORGSEQ, V_ORG_APPROVAL,B.FINAL_RATING,SUM(NVL(D.CORPUS_AMOUNT, 0) + NVL(D.OVERDUE_IN, 0) + NVL(D.OVERDUE_OUT, 0)) SXYE,NULLFROM T_KH_INFO_C ALEFT JOIN T_CUST_RATING_RESULT_NEWEST_C B  --算出分类结果表中每个级别的合同余额ON A.POINT_CMIS_ID = B.CUST_CUSTIDLEFT JOIN LOAN_CONTRACT CON A.POINT_CMIS_ID = C.CUST_IDLEFT JOIN DUE_BILL DON C.CONTRACT_CODE = D.LOAN_CONTRACT_IDGROUP BY B.FINAL_RATINGUNION ALLSELECT TO_TIMESTAMP(P_RATING_TIME,'YYYY-MM-DD'), V_ORGSEQ, V_ORG_APPROVAL, 'WPJ', SUM(NVL(D.CORPUS_AMOUNT, 0) + NVL(D.OVERDUE_IN, 0) + NVL(D.OVERDUE_OUT, 0)) SXYE, NULLFROM T_CUSTOMER_NEWEST_C ALEFT JOIN T_CUST_RATING_RESULT_NEWEST_C BON A.POINT_CMIS_ID = B.CUST_CUSTIDLEFT JOIN LOAN_CONTRACT CON A.POINT_CMIS_ID=C.CUST_IDLEFT JOIN DUE_BILL DON C.CONTRACT_CODE = D.LOAN_CONTRACT_IDWHERE B.CUST_CUSTID IS NULL;--2、插入每个级别(包括未评级)占总合同余额的比例INSERT INTO T_ZBY_CUST(CONFIRM_TIME, ORGSEQ, ORG_APPROVAL, FINAL_RATING, SXYE, ZBY)SELECT A.CONFIRM_TIME, A.ORGSEQ, A.ORG_APPROVAL, A.FINAL_RATING,A.SXYE, A.SXYE / B.ZSXYEFROM T_ZBY_CUST ALEFT JOIN (SELECT A1.CONFIRM_TIME, A1.ORGSEQ, A1.ORG_APPROVAL, SUM(A1.SXYE) ZSXYEFROM T_ZBY_CUST A1GROUP BY A1.CONFIRM_TIME, A1.ORGSEQ, A1.ORG_APPROVAL) BON A.CONFIRM_TIME = B.CONFIRM_TIMEAND A.ORGSEQ = B.ORGSEQAND A.ORG_APPROVAL = B.ORG_APPROVAL;--3、删除比例为空的信息 DELETE T_ZBY_CUST WHERE ZBY IS NULL;/***********************************************************************//***********债项评级结果插入到T_CUST_RATING_RESULT_QUERY临时表**********//***********************************************************************/
INSERT INTO T_CUST_RATING_RESULT_QUERY
SELECT X.CONFIRM_TIME,X.FINAL_RATING,X.BS,DECODE(SUBSTR(ROUND(TO_NUMBER(X.ZBL*100),2)||'%',1,1),'.','0'||ROUND(TO_NUMBER(X.ZBL*100),2)||'%',ROUND(TO_NUMBER(X.ZBL*100),2)||'%')  CUSTSCALE,Y.SXYE,DECODE(SUBSTR(ROUND(TO_NUMBER(Y.ZBY*100),2)||'%',1,1),'.','0'||ROUND(TO_NUMBER(Y.ZBY*100),2)||'%',ROUND(TO_NUMBER(Y.ZBY*100),2)||'%')  REMIANSCALE,V_ORGSEQ,V_ORG_APPROVALFROM T_ZBL_CUST X    --算出每个级别笔数/所有级别总笔数LEFT JOIN T_ZBY_CUST Y    --算出每个级别的合同余额/所有合同的总余额ON X.CONFIRM_TIME = Y.CONFIRM_TIMEAND X.FINAL_RATING = Y.FINAL_RATINGAND X.ORGSEQ=Y.ORGSEQAND X.ORG_APPROVAL=Y.ORG_APPROVAL     --两个结果按评级结果级别联在一起WHERE X.CONFIRM_TIME = TO_TIMESTAMP(P_RATING_TIME,'YYYY-MM-DD');/***********************************************************************//************************打开分页游标              *********************//***********************************************************************/OPEN P_CUR FORSELECT CONFIRM_TIME, FINAL_RATING, BS, CUSTSCALE, SXYE, REMIANSCALE, ORGSEQ, ORG_APPROVAL FROM T_CUST_RATING_RESULT_QUERYUNION ALLSELECT MAX(CONFIRM_TIME), NULL, SUM(BS), '100%', SUM(SXYE), '100%', V_ORGSEQ, V_ORG_APPROVAL FROM T_CUST_RATING_RESULT_QUERY;END;
/

3、  总结说明

用到的知识点:

(1)、临时表

create global temporary table

优点:速度快,效率高,代码易于理解

(2)、计算最新的一条记录
AND (A.POINT_CMIS_ID, A.CREATE_TIME) IN(SELECT B.POINT_CMIS_ID, MAX(B.CREATE_TIME)FROM CUSTOMER BGROUP BY B.POINT_CMIS_ID);
(3)、用DECODE实现一对多
AND A.SMALL_CORP_LOAN_CD IN (DECODE(V_SMALL_CORP_LOAN_CD,'1','1'),DECODE(V_SMALL_CORP_LOAN_CD,'2','2'),DECODE(V_SMALL_CORP_LOAN_CD,'2','3'),DECODE(V_SMALL_CORP_LOAN_CD,'2','4'),DECODE(V_SMALL_CORP_LOAN_CD,'!','1'),DECODE(V_SMALL_CORP_LOAN_CD,'!','2'),DECODE(V_SMALL_CORP_LOAN_CD,'!','3'),DECODE(V_SMALL_CORP_LOAN_CD,'!','4'));

表示:V_SMALL_CORP_LOAN_CD是1时取1;是2时取2、3、4;是!时取所有(1、2、3、4)


(4)、ROUND取小数位数
ROUND(TO_NUMBER(X.ZBL*100),2)
(5)、UNION ALL

当计算每一级别的个数与所有级别总和且放在同一结果集中时用到。

SELECT CONFIRM_TIME, FINAL_RATING, BS, CUSTSCALE, SXYE, REMIANSCALE, ORGSEQ, ORG_APPROVAL FROM T_CUST_RATING_RESULT_QUERYUNION ALLSELECT MAX(CONFIRM_TIME), NULL, SUM(BS), '100%', SUM(SXYE), '100%', V_ORGSEQ, V_ORG_APPROVAL FROM T_CUST_RATING_RESULT_QUERY;
(6)、REF游标
(7)、更新的理解

可以先删除再插入,也可以先插入再删除,不用update,也是更新。

(8)、百分比

数字*100转成字符串,再||‘%’

(9)、变量默认值的使用
V_ORGSEQ         VARCHAR2(12) := NVL(P_ORGSEQ,'99999');
V_ORG_APPROVAL   VARCHAR2(12) := NVL(P_ORG_APPROVAL,'!');
(10)、工整的版书、详尽的注释

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

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

相关文章

【Linux】常用工具(下)

Linux常用工具 一、Linux 项目自动化构建工具 - make/Makefile1. 依赖关系和依赖方法2. 伪目标3. make/Makefile 具有依赖性的推导能力&#xff08;语法扩展&#xff09;4. 编写一个进度条代码&#xff08;1&#xff09;缓冲区&#xff08;2&#xff09;\n 和 \r&#xff08;3&…

《C和指针》笔记29:数组名和指针

看下面的代码 int b[10];b[4]的类型是整型&#xff0c;但b的类型又是什么&#xff1f;它所表示的又是什么&#xff1f;一个合乎逻辑的答案是它表示整个数组&#xff0c;但事实并非如此。在C中&#xff0c;在几乎所有使用数组名的表达式中&#xff0c;数组名的值是一个指针常量…

Flask+pyecharts+SQLAlchemy,统计图的数据存放在mysql中,综合版

ISEE小语 有人问:“世上最廉价的东西是什么?” 在网上看到这样一个回答说: “大概就是付出吧,一贫如洗的真心、一事无成的温柔、一厢情愿的等待。” 回顾上篇 此篇是在【Flask+pyecharts结合,html统计图呈现在前端页面】和【Flask+pyecharts结合,优化前端加导航栏显示】的…

Vue实现大文件分片上传、断点续传

前言 实现大文件分片上传的断点续传以及上传进度条是一个在前端开发中常见且具有挑战性的问题。本篇博客将介绍如何使用Vue框架来实现这个功能&#xff0c;并给出代码示例。 概述 大文件分片上传指的是将一个大文件切割成多个小文件&#xff08;或称为分片&#xff09;&…

软件测试-BUG

软件测试-BUG 1.如何合理创建一个BUG 创建bug的要素&#xff1a; 软件的版本发现问题的环境发现问题的步骤预期结果实际结果 Bug报告&#xff1a; 软件版本&#xff1a;Google Chrome浏览器&#xff08;具体版本号&#xff09; 发现问题环境&#xff1a;在Windows 10操作系统…

ASO优化之如何给应用选择竞争对手

在选择竞争对手过程中&#xff0c;最常见的错误之一是没有考虑到自己的应用与同一行业的其他应用相比的范围。例如如果我们刚刚发布了一个应用程序&#xff0c;那么最好的办法就是专注于研究和自己同一级别的应用。 1、研究主要关键词。 首先选择5到10个可以定义产品类型的主要…

什么是ELK

什么是ELK ELK 并不是一个技术框架的名称&#xff0c;它其实是一个三位一体的技术名词&#xff0c;ELK 的每个字母都来自一个技术组件&#xff0c;分别是 Elasticsearch&#xff08;简称 ES&#xff09;、Logstash 和 Kibana。 三个技术组件是独立的&#xff0c;后两个被elast…

如何给API签名

前言 有时候为了保护API&#xff0c;需要用到 API 签名&#xff0c;使用 API 签名的好处&#xff1a; 让API只能被特定的人访问防止别人抓包拿到请求参数&#xff0c;通过篡改参数发起新的请求 客户端过程 给API调用者分配一个app_id和app_secret&#xff0c;app_secret调用…

【基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据】

基于Thread多线程随机数&#xff08;Random&#xff09;java版本JDBC手动提交事务EasyExcel读取excel文件&#xff0c;向数据库生成百万级别模拟数据 基于Thread多线程随机数&#xff08;Random&#xff09;java版本JDBC手动提交事务EasyExcel读取excel文件&#xff0c;向数据库…

《动手学深度学习》(pytorch版+mxnet版)2023最新

我又来推书了&#xff0c;这次分享的这本书可是重量级&#xff0c;目前已经被55个国家300所大学用于教学&#xff0c;同时受到了学术界与工业界的强烈推荐。 这本书就是李沐、阿斯顿张、立顿、斯莫拉四位大佬联合编写的《动手学深度学习》。本书面向中文读者&#xff0c;能运行…

【uniapp+vue3 】页面加载时根据不同角色设置导航栏标题

uniapp 页面加载时根据不同角色设置导航栏标题 其实很好实现&#xff0c;第一次开发uniapp项目&#xff0c;所以什么都不懂&#xff0c;绕了一点点的弯路 在对应页面的onLoad中获取到跳转过来传的参数中的判断角色字段&#xff0c;我这里传的是getRole uni.setNavigationBarT…

2024携程校招面试真题汇总及其解答(二)

6.画一下浮点数的结构 浮点数的结构主要由以下几个部分组成: 符号位:用于表示浮点数的正负,0 表示正,1 表示负。指数位:用于表示浮点数的大小,0 表示 1,1 表示 2,以此类推。尾数位:用于表示浮点数的具体值,尾数位通常使用科学计数法来表示。以下是浮点数的结构图: …

基于SSM的旅游网站系统

基于SSM的旅游网站系统【附源码文档】、前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、用户 管理员&#xff1a;用户管理、景点…

6. N 字形变换

https://leetcode.cn/problems/zigzag-conversion/description/ 思路 找规律&#xff1a; 首尾两行的下标是一个以i为第一个元素&#xff0c;2n-2为公差的等差数列中间元素的奇数元素是一个以i为第一个元素&#xff0c;2n-2为公差的等差数列 偶数元素是一个以2n-i-2为第一个…

避免分库分表,绿普惠的分布式数据库选型与实践

作者&#xff1a;翻墨&#xff0c;绿普惠科技&#xff08;北京&#xff09;有限公司架构师 一项数据显示&#xff0c;今天大气中的二氧化碳水平比过去 65 万年高了 27%。主要原因来自于工业化需求下的煤炭燃烧、汽车尾气。随着人类活动造成的温室效应加剧&#xff0c;环保越来越…

前端中blob文件流和base64的区别

在前端中&#xff0c;base64 和 fileBlob 是用于处理文件数据的两种不同方式。 1. Base64 编码 Base64 是一种将二进制数据转换为文本字符串的编码方式。它将文件数据转换为一串由 ASCII 字符组成的字符串。在前端中&#xff0c;可以使用 JavaScript 的 btoa() 和 atob() 函数…

uni-app 点击蒙版层时关闭自定义弹窗

click.stop&#xff1a;用于阻止冒泡 click.stop 标签范围内&#xff0c;点击任何区域(包括 click 点击事件)都不会关闭弹窗。标签范围外会关闭弹窗 click.stop 标签内的 click 等事件&#xff1a;如果事件内有关闭弹窗的代码可关闭弹窗 在 template 中 <view class&quo…

MyBatis注解开发

MyBatis常用注解 注解对应XML说明Insert< insert>新增SQLUpdate< update>更新SQLDelete< delete>删除SQLSelect< select>查询SQLParam–参数映射Results< resultMap>结果映射Result< id>< result>字段映射 开发流程&#xff1a; 1…

Milvus+Attu

Milvus 1.下载 https://github.com/milvus-io/milvus/releases/下载milvus-standalone-docker-compose version: 3.5services:etcd:container_name: milvus-etcdimage: quay.io/coreos/etcd:v3.5.5environment:- ETCD_AUTO_COMPACTION_MODErevision- ETCD_AUTO_COMPACTION_R…

小程序开发一个多少钱啊

在今天的数字化时代&#xff0c;小程序已经成为一种非常流行的应用程序形式。由于它们的便捷性、易用性和多功能性&#xff0c;小程序吸引了越来越多的用户和企业。但是&#xff0c;很多人在考虑开发一个小程序时&#xff0c;都会遇到同一个问题&#xff1a;开发一个小程序需要…