.cn域名注册官方网站/电商seo名词解释

.cn域名注册官方网站,电商seo名词解释,青岛房产网站建设,wordpress数据库优化2018数据校验和清洗 例如,检查客户的年龄是否在合理范围内,贷款金额是否符合规定的上下限等。 对于不符合规则的数据,可以进行清洗和修正。比如,将空值替换为默认值,或者对错误的数据进行纠正。 CREATE OR REPLACE PROC…

数据校验和清洗

  • 例如,检查客户的年龄是否在合理范围内,贷款金额是否符合规定的上下限等。

  • 对于不符合规则的数据,可以进行清洗和修正。比如,将空值替换为默认值,或者对错误的数据进行纠正。

CREATE OR REPLACE PROCEDURE ValidateAndCleanCreditData
AS
BEGIN-- 检查客户年龄是否在合理范围内(18 到 100 岁)UPDATE credit_dataSET customer_age = NULLWHERE customer_age < 18 OR customer_age > 100;-- 将空值的贷款金额替换为默认值 0UPDATE credit_dataSET loan_amount = 0WHERE loan_amount IS NULL;-- 检查贷款利率是否在合理范围内(0 到 100%)DELETE FROM credit_dataWHERE interest_rate < 0 OR interest_rate > 100;
END;

计算客户的信用评分

CREATE OR REPLACE PROCEDURE CalculateCreditScore(p_customer_id IN NUMBER, p_credit_score OUT NUMBER)
ASv_customer_income NUMBER;v_loan_amount NUMBER;v_loan_term NUMBER;v_payment_history VARCHAR2(50);v_score NUMBER := 0;
BEGIN-- 获取客户的基本信息和贷款记录SELECT customer_income, loan_amount, loan_term, payment_historyINTO v_customer_income, v_loan_amount, v_loan_term, v_payment_historyFROM credit_dataWHERE customer_id = p_customer_id;-- 根据客户收入计算部分信用评分IF v_customer_income > 50000 THENv_score := v_score + 30;ELSIF v_customer_income > 30000 THENv_score := v_score + 20;ELSEv_score := v_score + 10;END IF;-- 根据贷款金额和期限计算部分信用评分IF v_loan_amount / v_loan_term < 1000 THENv_score := v_score + 20;ELSIF v_loan_amount / v_loan_term < 2000 THENv_score := v_score + 15;ELSEv_score := v_score + 10;END IF;-- 根据还款历史计算部分信用评分IF v_payment_history = 'Good' THENv_score := v_score + 40;ELSIF v_payment_history = 'Fair' THENv_score := v_score + 20;ELSEv_score := v_score + 10;END IF;-- 返回信用评分p_credit_score := v_score;
END;

确定贷款利率

CREATE OR REPLACE PROCEDURE calculate_loan_rate (p_customer_id IN NUMBER,                -- 借款人IDp_loan_amount IN NUMBER,                -- 贷款金额p_loan_term IN NUMBER,                  -- 贷款期限(月)p_loan_type IN VARCHAR2,                -- 贷款类型p_loan_rate OUT NUMBER                  -- 贷款利率
) AS-- 借款人信息变量v_credit_score NUMBER;                  -- 信用评分v_base_rate NUMBER := 0.05;             -- 基准利率(假设为5%)v_risk_factor NUMBER := 0;              -- 风险调整因子BEGIN-- 获取借款人信用评分(假设存储在customer_info表中)SELECT credit_scoreINTO v_credit_scoreFROM customer_infoWHERE customer_id = p_customer_id;-- 根据信用评分调整风险因子IF v_credit_score >= 750 THENv_risk_factor := 0.01;  -- 信用评分高,风险低,利率调整因子小ELSIF v_credit_score BETWEEN 600 AND 749 THENv_risk_factor := 0.03;  -- 信用评分中等,风险中等,利率调整因子中等ELSEv_risk_factor := 0.05;  -- 信用评分低,风险高,利率调整因子大END IF;-- 根据贷款类型调整利率IF p_loan_type = '个人贷款' THENv_risk_factor := v_risk_factor + 0.02;ELSIF p_loan_type = '房贷' THENv_risk_factor := v_risk_factor + 0.01;ELSIF p_loan_type = '消费贷款' THENv_risk_factor := v_risk_factor + 0.03;ELSEv_risk_factor := v_risk_factor + 0.04;  -- 其他贷款类型END IF;-- 根据贷款期限调整利率IF p_loan_term > 60 THENv_risk_factor := v_risk_factor + 0.02;  -- 贷款期限长,风险增加END IF;-- 计算最终贷款利率p_loan_rate := v_base_rate + v_risk_factor;EXCEPTIONWHEN NO_DATA_FOUND THENp_loan_rate := NULL;DBMS_OUTPUT.PUT_LINE('未找到借款人信息,请检查客户ID是否正确。');WHEN OTHERS THENp_loan_rate := NULL;DBMS_OUTPUT.PUT_LINE('计算过程中发生错误:' || SQLERRM);
END calculate_loan_rate;

 调用存储过程

DECLAREv_customer_id NUMBER := 12345;          -- 借款人IDv_loan_amount NUMBER := 50000;         -- 贷款金额v_loan_term NUMBER := 60;              -- 贷款期限(月)v_loan_type VARCHAR2(20) := '个人贷款'; -- 贷款类型v_loan_rate NUMBER;                    -- 贷款利率
BEGINcalculate_loan_rate(p_customer_id => v_customer_id,p_loan_amount => v_loan_amount,p_loan_term => v_loan_term,p_loan_type => v_loan_type,p_loan_rate => v_loan_rate);IF v_loan_rate IS NOT NULL THENDBMS_OUTPUT.PUT_LINE('计算出的贷款利率为:' || TO_CHAR(v_loan_rate * 100) || '%');ELSEDBMS_OUTPUT.PUT_LINE('未能计算贷款利率,请检查输入参数。');END IF;
END;

生成月度贷款发放报表

CREATE OR REPLACE PROCEDURE GenerateMonthlyLoanReport
ASCURSOR loan_cursor ISSELECT loan_type, SUM(loan_amount) AS total_loan_amount, COUNT(*) AS loan_countFROM credit_dataWHERE loan_date BETWEEN TRUNC(SYSDATE, 'MONTH') AND LAST_DAY(SYSDATE)GROUP BY loan_type;
BEGIN-- 打开报表文件UTL_FILE.FOPEN('REPORT_DIR', 'monthly_loan_report.txt', 'W');-- 写入报表标题UTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, 'Monthly Loan Report');UTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, '-------------------');-- 遍历游标,写入报表内容FOR loan_record IN loan_cursor LOOPUTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, 'Loan Type: '|| loan_record.loan_type || ', Total Loan Amount: ' || loan_record.total_loan_amount || ', Loan Count: ' || loan_record.loan_count);END LOOP;-- 关闭报表文件UTL_FILE.FCLOSE(UTL_FILE.FILE_TYPE);
END;

sql解析(oracle):

TRUNC(SYSDATE, 'MONTH')

这个函数将当前日期 SYSDATE 截断到月份的开始,即返回当前月份的第一天。

LAST_DAY(SYSDATE)

这个函数返回当前月份的最后一天

SYSDATE 返回的是数据库服务器的当前日期和时间

 -- 打开报表文件
UTL_FILE.FOPEN('REPORT_DIR', 'monthly_loan_report.txt', 'W');

UTL_FILE

用于在 PL/SQL 程序中读取和写入操作系统文件。它允许数据库程序与文件系统交互,例如创建文件、写入数据、读取文件内容等

其中 UTL 是 Utility 的缩写,表示这是一个工具包

UTL_FILE.FOPEN 函数

用于打开一个文件, 语法如下

UTL_FILE.FOPEN(location => 'DIRECTORY_ALIAS', filename => 'FILE_NAME', open_mode => 'OPEN_MODE', max_linesize => MAX_LINESIZE);
  • location:指定文件所在的目录,必须是数据库中定义的目录别名(DIRECTORY 对象)。目录别名是通过 CREATE DIRECTORY 语句创建的,指向操作系统中的一个实际目录。

  • filename:指定要打开的文件名。

  • open_mode:指定文件的打开模式,可以是:

    • 'R':以只读模式打开文件。 Read(读取)

    • 'W':以写入模式打开文件(如果文件已存在,内容会被清空)。 Write(写入)

    • 'A':以追加模式打开文件(写入内容会追加到文件末尾)。 Append( 追加 )

  • max_linesize:可选参数,指定文件的最大行长度,默认为 32767 字节

-- 写入报表标题
UTL_FILE.FOPEN('REPORT_DIR', 'monthly_loan_report.txt', 'W');

 'REPORT_DIR':这是目录别名,指向一个已经通过 CREATE DIRECTORY 创建的目录对象。例如:

 

返回值

UTL_FILE.FOPEN 返回一个文件句柄(FILE_TYPE),这个句柄用于后续的文件操作,例如写入内容或关闭文件。

UTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, 'Monthly Loan Report');

UTL_FILE.PUT_LINE函数

用于将一行文本写入到指定的文件中。

UTL_FILE.FILE_TYPE

一个文件类型对象,它在前面的代码中通过UTL_FILE.FOPEN函数打开了一个文件,并将其赋值给UTL_FILE.FILE_TYPE。这个对象代表了要写入的文件。

'Monthly Loan Report'

这是要写入文件的文本内容,即报表的标题

UTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, '-------------------');

也是使用UTL_FILE.PUT_LINE函数将一行文本写入到文件中

'-------------------':这是要写入文件的文本内容,通常用于在标题下方添加一条分隔线,以增强报表的可读性。

-- 遍历游标,写入报表内容
FOR loan_record IN loan_cursor LOOPUTL_FILE.PUT_LINE(UTL_FILE.FILE_TYPE, 'Loan Type: ' || loan_record.loan_type || ', Total Loan Amount: ' || loan_record.total_loan_amount || ', Loan Count: ' || loan_record.loan_count);END LOOP;

FOR  ...  IN  ...   LOOP循环

从游标(loan_cursor)中逐条读取数据,并将每条记录的信息写入到一个文件中。

自动从游标中逐条取出数据,并将每条记录赋值给 loan_record, 直到游标中的所有记录都被处理完毕。

UTL_FILE.PUT_LINE

UTL_FILE 包中的一个函数,用于将一行文本写入到文件中

UTL_FILE.FILE_TYPE 

这是要写入的目标文件

'Loan Type: ' || loan_record.loan_type || ', Total Loan Amount: ' || loan_record.total_loan_amount || ', Loan Count: ' || loan_record.loan_count

这是要写入的字符串内容

   -- 关闭报表文件UTL_FILE.FCLOSE(UTL_FILE.FILE_TYPE);
END;

UTL_FILE.FCLOSE函数

用于关闭一个通过 UTL_FILE.FOPEN 打开的文件。它的作用是释放与文件句柄相关的资源,并确保文件正确关闭

UTL_FILE.FILE_TYPE

这是要关闭的文件, 也是之前UTL_FILE.FOPEN的返回值 

逾期贷款统计报表

-- 创建存储过程
CREATE OR REPLACE PROCEDURE sp_OverdueLoanReport (p_StartDate DATE,  -- 统计开始日期p_EndDate DATE,    -- 统计结束日期p_Cursor OUT SYS_REFCURSOR  -- 输出游标
) IS
BEGIN-- 打开游标,查询逾期贷款数据OPEN p_Cursor FORSELECTl.loan_id AS "LoanID",c.customer_name AS "CustomerName",l.loan_amount AS "LoanAmount",l.due_date AS "DueDate",TRUNC(SYSDATE - l.due_date) AS "OverdueDays",  -- 计算逾期天数(l.loan_amount - NVL(SUM(p.payment_amount), 0)) AS "OverdueAmount" -- 计算逾期金额FROMloans lINNER JOINcustomers c ON l.customer_id = c.customer_idLEFT JOINpayments p ON l.loan_id = p.loan_idWHEREl.due_date <= SYSDATE  -- 筛选出逾期的贷款AND p.payment_date BETWEEN p_StartDate AND p_EndDateGROUP BYl.loan_id, c.customer_name, l.loan_amount, l.due_dateHAVINGl.loan_amount > NVL(SUM(p.payment_amount), 0)  -- 筛选出贷款未完全偿还的ORDER BY"OverdueDays" DESC;END sp_OverdueLoanReport;

解析:

这里没有定义游标, 因为在 Oracle 数据库中,使用 SYS_REFCURSOR 作为存储过程的输出参数时,不需要显式定义游标SYS_REFCURSOR 是一个系统定义的游标类型,用于返回查询结果集。在存储过程中,直接通过 OPEN p_Cursor FOR 语句将查询结果集绑定到游标即可。

SYS  即 system 系统

REF  即Reference 引用

OPEN p_Cursor FOR 后面的 select 语句

多表查询语句: 

  • loans l:主表,存储贷款信息。

  • INNER JOIN customers c ON l.customer_id = c.customer_id:通过客户编号将 loans 表与 customers 表连接,获取客户名称。

  • LEFT JOIN payments p ON l.loan_id = p.loan_id:通过贷款编号将 loans 表与 payments 表连接,获取还款信息。使用 LEFT JOIN 是为了确保即使没有还款记录的贷款也能被查询到。

END sp_OverdueLoanReport;

oracle存储过程的结束需要再写一次存储过程名称

将查询结果直接插入到表中

方法 1:直接在存储过程中插入到目标表

前提: 已经存在一个目标表 

CREATE OR REPLACE PROCEDURE sp_OverdueLoanReport (p_StartDate DATE,  -- 统计开始日期p_EndDate DATE,    -- 统计结束日期p_Cursor OUT SYS_REFCURSOR  -- 输出游标
) IS
BEGIN-- 清空目标表(如果需要)DELETE FROM overdue_loan_report;-- 插入数据到目标表INSERT INTO overdue_loan_report (LoanID,CustomerName,LoanAmount,DueDate,OverdueDays,OverdueAmount)SELECTl.loan_id AS LoanID,c.customer_name AS CustomerName,l.loan_amount AS LoanAmount,l.due_date AS DueDate,TRUNC(SYSDATE - l.due_date) AS OverdueDays,  -- 计算逾期天数(l.loan_amount - NVL(SUM(p.payment_amount), 0)) AS OverdueAmount  -- 计算逾期金额FROMloans lINNER JOINcustomers c ON l.customer_id = c.customer_idLEFT JOINpayments p ON l.loan_id = p.loan_idWHEREl.due_date <= SYSDATE  -- 筛选出逾期的贷款AND p.payment_date BETWEEN p_StartDate AND p_EndDateGROUP BYl.loan_id, c.customer_name, l.loan_amount, l.due_dateHAVINGl.loan_amount > NVL(SUM(p.payment_amount), 0)  -- 筛选出贷款未完全偿还的ORDER BYOverdueDays DESC;-- 提交事务COMMIT;-- 打开游标,返回查询结果OPEN p_Cursor FORSELECT * FROM overdue_loan_report ORDER BY OverdueDays DESC;END sp_OverdueLoanReport;

方法 2:使用临时表存储结果

CREATE OR REPLACE PROCEDURE sp_OverdueLoanReport (p_StartDate DATE,  -- 统计开始日期p_EndDate DATE,    -- 统计结束日期p_Cursor OUT SYS_REFCURSOR  -- 输出游标
) IS
BEGIN-- 创建临时表(如果尚未创建)EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE temp_overdue_loan_report (LoanID NUMBER,CustomerName VARCHAR2(100),LoanAmount NUMBER,DueDate DATE,OverdueDays NUMBER,OverdueAmount NUMBER) ON COMMIT DELETE ROWS';-- 清空临时表(如果需要)EXECUTE IMMEDIATE 'TRUNCATE TABLE temp_overdue_loan_report';-- 插入数据到临时表INSERT INTO temp_overdue_loan_report (LoanID,CustomerName,LoanAmount,DueDate,OverdueDays,OverdueAmount)SELECTl.loan_id AS LoanID,c.customer_name AS CustomerName,l.loan_amount AS LoanAmount,l.due_date AS DueDate,TRUNC(SYSDATE - l.due_date) AS OverdueDays,  -- 计算逾期天数(l.loan_amount - NVL(SUM(p.payment_amount), 0)) AS OverdueAmount  -- 计算逾期金额FROMloans lINNER JOINcustomers c ON l.customer_id = c.customer_idLEFT JOINpayments p ON l.loan_id = p.loan_idWHEREl.due_date <= SYSDATE  -- 筛选出逾期的贷款AND p.payment_date BETWEEN p_StartDate AND p_EndDateGROUP BYl.loan_id, c.customer_name, l.loan_amount, l.due_dateHAVINGl.loan_amount > NVL(SUM(p.payment_amount), 0)  -- 筛选出贷款未完全偿还的ORDER BYOverdueDays DESC;-- 提交事务COMMIT;-- 打开游标,返回查询结果OPEN p_Cursor FORSELECT * FROM temp_overdue_loan_report ORDER BY OverdueDays DESC;END sp_OverdueLoanReport;

解析:

CREATE GLOBAL TEMPORARY TABLE  

创建一个全局临时表, 它允许会话(session)在事务中插入数据,并且在事务提交时不会删除这些数据,而是在会话结束时删除。 

ON COMMIT DELETE ROWS

全局临时表的一个选项

ON COMMIT:指定在事务提交时的行为。

DELETE ROWS:

  • 在事务提交时删除数据:当事务提交(COMMIT)或回滚(ROLLBACK)时,该临时表中插入的所有数据会被自动删除。

  • 表结构保留:虽然数据被删除,但临时表的结构仍然存在,不会被删除。

计算客户的信用风险指数

创建自定义函数

CREATE OR REPLACE FUNCTION calculate_risk_index(customer_income NUMBER,loan_amount NUMBER,payment_history VARCHAR2
) RETURN NUMBER ASrisk_index NUMBER;
BEGIN-- 根据收入、贷款金额和支付历史计算风险指数IF customer_income > 50000 AND payment_history = 'Good' THENrisk_index := loan_amount / customer_income * 0.5;ELSIF customer_income > 30000 AND payment_history = 'Fair' THENrisk_index := loan_amount / customer_income * 0.7;ELSErisk_index := loan_amount / customer_income * 1;END IF;RETURN risk_index;
END;

创建一个存储过程来调用这个自定义函数,并执行其他数据库操作,比如更新客户的信用评级

CREATE OR REPLACE PROCEDURE process_credit_approval(customer_id NUMBER
) AScustomer_income NUMBER;loan_amount NUMBER;payment_history VARCHAR2(50);risk_index NUMBER;credit_rating VARCHAR2(20);
BEGIN-- 获取客户的相关信息SELECT income, loan_amount, payment_historyINTO customer_income, loan_amount, payment_historyFROM customer_tableWHERE customer_id = customer_id;-- 调用自定义函数计算风险指数risk_index := calculate_risk_index(customer_income, loan_amount, payment_history);-- 根据风险指数确定信用评级IF risk_index < 0.3 THENcredit_rating := 'Excellent';ELSIF risk_index < 0.5 THENcredit_rating := 'Good';ELSIF risk_index < 0.7 THENcredit_rating := 'Fair';ELSEcredit_rating := 'Poor';END IF;-- 更新客户的信用评级UPDATE customer_tableSET credit_rating = credit_ratingWHERE customer_id = customer_id;
END;

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

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

相关文章

指令微调 (Instruction Tuning) 与 Prompt 工程

引言 预训练语言模型 (PLMs) 在通用语言能力方面展现出强大的潜力。然而&#xff0c;如何有效地引导 PLMs 遵循人类指令&#xff0c; 并输出符合人类意图的响应&#xff0c; 成为释放 PLMs 价值的关键挑战。 指令微调 (Instruction Tuning) 和 Prompt 工程 (Prompt Engineerin…

【c++】反转字符串

说明 将string类型的字符串本身反转 用到库&#xff1a;algorithm 示例代码 #include <iostream> #include <string> #include <algorithm> using namespace std;int main() {string str "123";reverse(str.begin(), str.end());cout <<…

ARMV8的64位指令

一、介绍 ARMv8 体系结构最大的改变是增加了一个新的 64 位的指令集&#xff0c;这是早前 ARM 指令集 的有益补充和增强。它可以处理 64 位宽的寄存器和数据并且使用 64 位的指针来访问内存。这 个新的指令集称为 A64 指令集&#xff0c;运行在 AArch64 状态。 ARMv8 兼容旧的…

线性代数之矩阵特征值与特征向量的数值求解方法

文章目录 前言1. 幂迭代法&#xff08;Power Iteration&#xff09;幂法与反幂法求解矩阵特征值幂法求最大特征值编程实现补充说明 2. 逆幂迭代法&#xff08;Inverse Iteration&#xff09;移位反幂法 3. QR 算法&#xff08;QR Algorithm&#xff09;——稠密矩阵理论推导编程…

VScode:运行程序停止后,频繁出现终端进程被终止

VScode里面powershell被迫关闭 bug场景排查原因解决办法 bug场景 系统&#xff1a;Windows IDE&#xff1a;Visual Studio Code 停止运行程序后&#xff0c;按向上箭头想要执行上一步命令&#xff0c;忽然终端页面强行关闭&#xff0c;并报错如下&#xff1a; 终端进程 &quo…

【菜鸟飞】Conda安装部署与vscode的结合使用

介绍 Conda 是一个跨平台的开源工具&#xff0c;用于管理软件包和环境。最初由 Anaconda 公司开发&#xff0c;它的设计目标是支持数据科学和机器学习领域&#xff0c;但其功能不仅局限于此。 以下是 Conda 的核心特点&#xff1a; 包管理&#xff1a;安装、更新、卸载各种库…

单例模式的五种实现方式

1、饿汉式 ①实现&#xff1a;在类加载的时候就初始化实例 ②优点&#xff1a;线程安全 ③缺点&#xff1a;实例在类加载的时候创建&#xff0c;可能会浪费资源 //饿汉式 public class EagerSingleton{private EagerSingleton(){} //私有构造方法private static EagerSingle…

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里&#xff0c;我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下&#xff0c;SwiftUI 会将每个视图尺寸处理的井井有条&#xff0c;不过在某些时候我们还是得亲力亲为。 如上图所示&#xff0c;无论顶部 TabView 容器里子视图…

小程序SSL证书过期怎么办?

SSL证书就像小程序的“安全锁”&#xff0c;一旦过期&#xff0c;用户访问时会被提示“不安全”&#xff0c;轻则流失客户&#xff0c;重则数据泄露&#xff01;作为企业负责人&#xff0c;如何快速解决证书过期问题&#xff1f;又该如何避免再次踩坑&#xff1f;这篇指南给你答…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_02带边框和斑马纹的固定表头表格

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

基础算法——顺序表

一、询问学号 题⽬来源&#xff1a;洛⾕ 题⽬链接&#xff1a;P3156 【深基15.例1】询问学号 - 洛谷 难度系数&#xff1a;★ 1. 题目描述 2. 算法原理 直接⽤ vector 或者数组模拟即可。 3. 参考代码 #include <iostream> #include <vector>using namespace st…

Ubuntu用户安装cpolar内网穿透

前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件&#xff0c;不仅能够在多种环境和应用场景中发挥巨大作用&#xff0c;还能适应多种操作系统&#xff0c;应用最为广泛的Windows、Mac OS系统自不必多说&#xff0c;稍显小众的Linux、树莓派、群辉等也在起支持之列&#…

Oracle比较好的几本书籍

1.《Oracle专家高级编程》 2.《Oracle高效设计》 3.《Oracle9i&10g&11g编程艺术深入数据库体系结构》 4.《让Oracle跑的更快》(1/2) ....... n.《Oracle官方文档的阅读》下面包括这几个部分&#xff0c;可以跟进研读一下&#xff1a; &#xff08;1&#xff09;《…

Android : Camera之CHI API

来自&#xff1a; https://www.cnblogs.com/szsky/articles/10861918.html 一、CAM CHI API功能介绍&#xff1a; CHI API建立在Google HAL3的灵活性基础之上&#xff0c;目的是将Camera2/HAL3接口分离出来用于使用相机功能&#xff0c;它是一个灵活的图像处理驱动程序&#…

Netty基础—2.网络编程基础四

大纲 1.网络编程简介 2.BIO网络编程 3.AIO网络编程 4.NIO网络编程之Buffer 5.NIO网络编程之实战 6.NIO网络编程之Reactor模式 5.NIO网络编程之Buffer (1)Buffer的作用 Buffer的作用是方便读写通道(Channel)中的数据。首先数据是从通道(Channel)读入缓冲区&#xff0c;从…

调试正常 ≠ 运行正常:Keil5中MicroLIB的“量子态BUG”破解实录

调试正常 ≠ 运行正常&#xff1a;Keil5中MicroLIB的“量子态BUG”破解实录——从勾选一个选项到理解半主机模式&#xff0c;嵌入式开发的认知升级 &#x1f4cc; 现象描述&#xff1a;调试与烧录的诡异差异 在线调试时 程序正常运行 - 独立运行时 设备无响应 ! 编译过程 0 Err…

算法每日一练 (9)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (9)最小路径和题目描述解题思路解题代码…

【高项】信息系统项目管理师(四)项目整合管理【4分】

一、管理基础 项目整合管理的责任不能被授权或转移&#xff0c;项目经理必须对整个项目承担最终责任。 执行项目整合时项目经理承担双重角色&#xff1a; 1、组织层面上&#xff0c;项目经理扮演重要角色&#xff0c;与项目发起人携手合作&#xff0c;了解战略目标并确保项目目…

初次体验Tauri和Sycamore(3)通道实现

​ 原创作者&#xff1a;庄晓立&#xff08;LIIGO&#xff09; 原创时间&#xff1a;2025年03月10日&#xff08;发布时间&#xff09; 原创链接&#xff1a;https://blog.csdn.net/liigo/article/details/146159327 版权所有&#xff0c;转载请注明出处。 20250310 LIIGO备注&…

蓝耘赋能通义万相 2.1:用 C++ 构建高效 AI 视频生成生态

目录 开篇&#xff1a;AI 视频生成新时代的号角 通义万相 2.1&#xff1a;AI 视频生成的领军者 核心技术揭秘 功能特点展示 与其他模型的全面对比 C&#xff1a;高效编程的基石 C 的发展历程与特性 C 在 AI 领域的广泛应用 通义万相 2.1 与 C 的完美融合 融合的意义与…