当前位置: 首页 > news >正文

oracle数据库常用操作

1.连接登录

切换用户

su - oracle

以管理员模式登录到sqlplus:

sqlplus / as sysdba 

oracle登录身份有三种:

1.1Normal 普通身份;

1.2.sysdba 系统管理员身份;若以 ‘sysdba’ 方式认证,登录用户为 ‘SYS’,为 Oracle ‘最高权限用户’,可以建数据库

1.3 sysoper 系统操作员身份;若以 ‘sysoper’ 方式认证,登录用户为 ‘PUBLIC’,仅有 ‘PUBLIC 对象权限’,不能建数据库)

创建用户登录:

sqlplus /nolog
conn /as sysdba
create user zhangsan identified by 123456;
grant connect to zhangsan;
alter user zhangsan quota unlimited on users;  #为用户在users表空间上设置配额,分配无限制的空间
alter user zhangsan quota 10M on users;  #分配10M空间
conn zhangsan/123456;以用户zhangsan连接数据库

2.赋予角色

oracle提供三种标准角色(role):connect、resource和dba.

2.1 connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)。

2.2 resource role(资源角色):提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

2.3 dba role(数据库管理员角色):拥有所有的系统权限

grant connect to zhangsan;

3.赋予权限

grant create view to zhangsan;
grant sysdba to zhangsan;
grant create materialized view to zhangsan;
grant create any materialized view to zhangsan;
grant global query rewrite to zhangsan;
grant on commit refresh to zhangsan;

4.查询该用户下所有的表

select * from tab;

5.表重命名后,前面需要加上模式名

ZHANGSAN.t1.name

6.插入多条数据

不支持insert into..values(),(),()插入多条数据,需使用insert all into语法或逐条插入

create table uxdbc_oracle_pivot_0001_table01(id int not null,name varchar2(15) not null, sex char(10), phone varchar2(15), salary float,depart varchar2(15),entime timestamp);
#插入数据:
insert into uxdbc_oracle_pivot_0001_table01 values(0001,'张三','man','0123-54589521',2500,'A3001','2015/12/2');
insert into uxdbc_oracle_pivot_0001_table01 values(0001,'张三','man','0123-54589521',2500,'A3001','02-Dec-15');

7.级联删除表

drop table uxdbc_oracle_pivot_0001_table01 cascade constraints;

8.listagg(XXX,',') within GROUP (order by XXX)

listagg第二个参数必须是特殊字符

select * from uxdbc_oracle_pivot_0001_table01 pivot(listagg(sex,',') within group(order by sex) for entime in(2,8)) order by id;

listagg 函数有两个参数:

1、 要合并的列名

2、 自定义连接符号

LISTAGG 函数既是分析函数,也是聚合函数

所以,它有两种用法:

1、分析函数,如: row_number()、rank()、dense_rank() 等,用法相似

listagg(合并字段, 连接符) within group(order by 合并的字段的排序) over(partition by 分组字段)

2、聚合函数,如:sum()、count()、avg()等,用法相似

listagg(合并字段, 连接符) within group(order by 合并字段排序)--后面跟 group by 语句

一部分聚合函数其实也可以写成分析函数的形式。

分析函数和聚合函数本质上都是对数据进行分组,二者最大的不同便是:

对数据进行分组分组之后,

聚合函数只会每组返回一条数据,

而分析函数会针对每条记录都返回,

一部分分析函数还会对同一组中的数据进行一些处理(比如:rank() 函数对每组中的数据进行编号);

还有一部分分析函数不会对同一组中的数据进行处理(比如:sum()、listagg()),这种情况下,分析函数返回的数据会有重复的,distinct 处理之后的结果与对应的聚合函数返回的结果一致。

#LISTAGG 聚合函数用法
SELECT T.S_NO,LISTAGG(T.ITEM_NO, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) ITEM_NO,LISTAGG(T.CUS_NAME, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) CUS_NAME,LISTAGG(T.TEL, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) TEL,LISTAGG(T.ADDRESS, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) ADDRESSFROM test TGROUP BY T.S_NO;
#LISTAGG 分析函数用法
SELECT T.S_NO,LISTAGG(T.ITEM_NO, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) ITEM_NO,LISTAGG(T.CUS_NAME, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) CUS_NAME,LISTAGG(T.TEL, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) TEL,LISTAGG(T.ADDRESS, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) ADDRESSFROM test T;

9.oracle不支持limit、offset

limit 3语法:where rownum<=3;

offset 2 语法:offset 2 rows;

select t1,t2,t2-t1 t3 from uxdbc_oracle_operator_timecharacters_1441_table01 where rownum <=10 order by t3 offset 1 rows;

10.Oracle不支持布尔类型

11.oracle数据库关闭后恢复

oracle数据库关闭了,SQL*Plus无法连接,显示以下错误:

ORA-01033 : ORACLE initialization or shutdown in progress

conn zhangsan/123456报错:

ORA-01090: shutdown in progress - connection is not permitted

解决办法:

以DBA用户登录,sqlplus / as sysdba

提示:已连接

如果提示Connected to an idle instance.执行SYS@orcl>startup

提示:ORACLE instance started.

SQL>shutdown normal

提示:数据库已经关闭已经卸载数据库ORACLE 例程已经关闭

SQL>startup mount

提示:ORACLE例程已经启动

SQL>alter database open;

提示:第1 行出现错误: ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件

继续输入,SQL>alter database datafile 5 offline drop;

提示:数据库已更改。

循环使用最后两步,直到alter database open;后不再提示错误,出现“数据库已更改”。

到这里可能会出现另外一种情况:

ORA-01172:线程1的恢复停止在块118368(在文件2中)

ORA-01151:如果需要,请使用介质恢复以恢复块和还原备份

此时可以进行介质恢复:

SQL>recover datafile 2

完成介质恢复。

12.把date类型的公元前年份前面的负号显示出来

alter session set nls_date_format='sYYYY-MM-DD HH24:MI:SS';

13.设置列宽和、行宽

set linesize number;      #线宽   
set linesize 150;
set pagesize number;      #页面大小
set pagesize 300;
col colname format size;  #列宽   
col ID format a20;        #设定字符列格式
col ID for 999,999,999.999 #设定数字列格式  
clear columns;            #清空当前所有列的设置,恢复成默认格式

14.时间输入

ALTER SESSION SET TIME_ZONE='+08:00'; #设置时区

公元前:

select to_date('2022-11-30 13:34:56','YYYY-MM-DD HH24:MI:SS') - to_timestamp('-2022-11-20 12:34:56','sYYYY-MM-DD HH24:MI:SS') from dual;

带时区:

select to_date('2022-10-23 13:34:56','YYYY-MM-DD HH24:MI:SS') -timestamp'2022-10-21 12:34:56-08:00'  from dual;

时间间隔:

select to_date('2020-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS') - interval'1-2' year to month from dual;
select to_date('2020-01-01 12:34:56','YYYY-MM-DD HH24:MI:SS') - interval'0 00:00:00' day to second t3 from dual;create table test(t1 date,t2 timestamp);
insert into test values(to_date('2022-11-30 13:34:56','YYYY-MM-DD HH24:MI:SS'),to_timestamp('2022-11-20 12:34:56','YYYY-MM-DD HH24:MI:SS'));
create table test(t1 timestamp with time zone,t2 interval day to second);
insert into test values(timestamp'2020-01-01 12:32:22-8:00',interval '14' day);
CREATE TABLE candidates ( candidate_id NUMBER, first_name VARCHAR2(50) NOT NULL, last_name VARCHAR2(50) NOT NULL, job_title VARCHAR2(255) NOT NULL, year_of_experience INTERVAL YEAR TO MONTH, PRIMARY KEY (candidate_id) );  
INSERT INTO candidates ( first_name, last_name, job_title, year_of_experience ) VALUES ( 'Camila', 'Kramer', 'SCM Manager', INTERVAL '10-2' YEAR TO MONTH ); 

15.修改日期显示格式

可以通过设置 NLS_DATE_FORMAT 来让日期显示更人性化,可以有如下几种方式:

①  在会话级别运行命令:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,只在会话级别起作用。

②  在文件 $ORACLE_HOME/sqlplus/admin/glogin.sql 中加入:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,这样每个会话都会起作用。

③  修改初始化参数:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,每个会话都起作用。

④  设置环境变量 NLS_DATE_FORMAT ,但是必须和 NLS_LANG 一起设置,否则不会生效,可以直接在会话窗口使用 export 或 .bash_profile 配置文件(全局应用)设置,如下所示:

退出数据库在控制台执行

export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK # 或: export NLS_LANG=AMERICAN

若是 Windows 环境,则可以使用如下命令:

SETX "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:MI:SS"

SETX "NLS_LANG" "AMERICAN_AMERICA.ZHS16GBK"

16.存储过程

创建存储过程语法:

create or replace procedure 存储过程名
as
begin----------------------------
end;

注:

在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别;

在视图(VIEW)中只能用AS不能用IS;

在游标(CURSOR)中只能用IS不能用AS。

create or replace procedure myDemo01
as
begindbms_output.put_line('hello word, my name is stored procedure');
end;
call myDemo01();    --call 存储过程名可完成调用,注意括号不能少#带in out 参数:
create or replace procedure myDemo04(name out varchar,age in int)
as
begindbms_output.put_line('age='||age);select 'ex_sunqi' into name from dual;
end;declarename varchar(10);age int;
beginmyDemo04(name=>name,age=>25);dbms_output.put_line('name='||name);
end;
create procedure uxdbc_oracle_extension_plsql_goto_0017_procedure01 
is i int := 2; 
begin loop <<next_step>> i := i * 2; if i > 100 then exit;end if; if i > 50 then dbms_output.put_line(i); goto next_step;end if; dbms_output.put_line(i);end loop; 
end;
/
call uxdbc_oracle_extension_plsql_goto_0017_procedure01();
#注意:创建存储过程时没有参数不需要加括号(),但调用的时候要加

17.函数

创建函数语法:

create [or replace] function 函数名 
([p1,p2...pn])
return datatype
is|as
--声明部分 
begin
--PL/SQL程序块
end
create or replace function uxdbc_oracle_extension_plsql_goto_0002_function01(t1 in int) return varcharis p varchar(30);begin if t1 mod 2 =0 thengoto even_number;elsegoto odd_number;end if;<<even_number>>p := t1 || ' is a even number';goto end_lb;<<odd_number>>p := t1 || ' is a odd number';<<end_lb>> return p; end;/

如果函数创建成功但有报警 Warning: Function created with compilation errors.

执行show errors function uxdbc_oracle_extension_plsql_goto_0002_function01;查看具体的错误信息,然后修改

错误1:text类型不存在,return text改为return varchar

错误2:t1%2=0 改成t1 mod 2 = 0

错误3:p:=cast($1 as text) || ' is a odd number'改成p:=t1 || ' is a odd number'

18.匿名块

创建匿名块语法:

declare--声明变量
begin--执行业务逻辑
exception--异常处理
end; 
/

执行oracle匿名块,最前面先执行最前面加上下面这句,使控制台显示输出

set serveroutput on;
declares  int := 0;i  int := 0;j  int;
begin<<outer_loop>>loopi := i + 1;j := 0;<<inner_loop>>loopj := j + 1;s := s + i * j; if j<=5 thengoto inner_loop;elsif (i * j) <= 15 thengoto outer_loop;elsegoto end_loop;end if;   end loop inner_loop;end loop outer_loop;<<end_loop>> dbms_output.put_line('end_loop');dbms_output.put_line('The sum of products equals: '||s);
end;
/

相关文章:

oracle数据库常用操作

1.连接登录切换用户su - oracle以管理员模式登录到sqlplus&#xff1a;sqlplus / as sysdba oracle登录身份有三种&#xff1a;1.1Normal 普通身份&#xff1b;1.2.sysdba 系统管理员身份&#xff1b;若以 ‘sysdba’ 方式认证&#xff0c;登录用户为 ‘SYS’&#xff0c;为 Or…...

一文教会你如何在Linux系统中使用Docker安装Redis 、以及如何使用可视化工具连接【详细过程+图解】

文章目录1、安装redis2、在外部创建配置文件3、创建redis4、启动测试redis5、数据持久化存储6、使用可视化工具连接redis前言在windows上安装过reids、在linux上也安装过redis&#xff0c;但是都没有docker上安装redis方便。这里给出docer安装redis的相关教程1、安装redis 默认…...

mysql 内存架构

1. 背景 从 innodb 的整体架构中可以知道 innodb 的内存架构中分为 buffer pool 缓存区, change pool 修改缓冲区, adaptive hash index 自适应哈希索引, 和 log buffer 日志缓冲区. 2. buffer pool buffer pool 是用于缓冲磁盘页的数据&#xff0c;mysql 的80%的内存会分配给…...

Helm安装Harbor

一、介绍 1.1 Harbor Harbor 是由 VMware 公司为企业用户设计的 Registry Server 开源项目&#xff0c;包括了权限管理 (RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能&#xff0c;同时针对中国用户的特点&#xff0c;设计镜像复制和中文支持等功能。目前该项…...

梯度下降优化器:SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam -> AdamW

目录 1 前言 2 梯度概念 3 一般梯度下降法 4 BGD 5 SGD 6 MBGD 7 Momentum 8 SGDM&#xff08;SGD with momentum&#xff09; 9 NAG(Nesterov Accelerated Gradient) 10 AdaGrad 11 RMSProp 12 Adadelta 13 Adam 13 Nadam 14 AdamW 15 Lion&#xff08;EvoLve…...

Ubuntu下gcc多版本管理

Ubuntu下多gcc版本的管理 开发过程中&#xff0c;在编译一个开源项目时&#xff0c;由于代码使用的c版本过高&#xff0c;而系统内置的gcc版本过低时&#xff0c;这个时候我们就需要升级gcc版本&#xff0c;但是为了避免兼容性问题&#xff0c;安装多个版本的gcc&#xff0c;然…...

吃透8图1模板,人人可以做架构

前言 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴问尼恩&#xff1a; 大佬&#xff0c;我们写架构方案&#xff0c; 需要从哪些方面展开 大佬&#xff0c;我们写总体设计方案需要一些技术亮点&#xff0c;可否发一些给我参考下 诸如此类&#xff0c;问法很多…...

骨传导耳机推荐哪款好,列举几款是市面上热销的骨传导耳机

​骨传导耳机是一种新型的耳机类型&#xff0c;通过震动和声音将振动传到了耳道外&#xff0c;对耳道不会产生损伤&#xff0c;能够保护听力。相比于传统耳机的优势有很多&#xff0c;比如运动时佩戴更加稳固&#xff0c;也可以在听歌时与人交谈。但在市面上的骨传导耳机款式可…...

CFS三层内网渗透

目录 环境搭建 拿ubuntu主机 信息收集 thinkphp漏洞利用 上线msf 添加路由建立socks代理 bagecms漏洞利用 拿下centos主机 msf上线centos 添加路由&#xff0c;建立socks代理 拿下win7主机 环境搭建 设置三块虚拟网卡 开启虚拟机验证&#xff0c;确保所处网段正确&a…...

SQL server设置用户只能访问特定数据库、访问特定表或视图

在实际业务场景我们可能需要开放单独用户给第三方使用&#xff0c;并且不想让第三方看到与业务不相关的表或视图&#xff0c;我们需要在数据库中设置一切权限来实现此功能&#xff1a; 1.设置用户只能查看数据库中特定的视图或表 1.创建用户名 选择默认数据库 服务器角色默认…...

linux:http服务器搭建及实验案例

目录准备工作http服务器各个配置文件大概说明实验1&#xff1a;访问不同ip获得不同网页实验2&#xff1a;同一ip访问不同端口获得不同网页准备工作 1&#xff0c;安装http服务 2&#xff0c;将 /etc/selinux/config 文件下面的 SELINUX值改为 disabled 或者 permissive 。 3&a…...

【无标题】智能工业安全用电监测与智慧能源解决方案

工业互联网已成为全球制造业发展的新趋势。在新基建的推动下&#xff0c;5G、人工智能、云计算等技术与传统工业深度融合&#xff0c;为实现智能制造提供了技术支撑&#xff0c;将有力促进制造强国早日实现。 十四五规划在新基建的基础上进一步加快了制造业转型升级的步伐&…...

前端白屏的检测方案,让你知道自己的页面白了

前言 页面白屏&#xff0c;绝对是让前端开发者最为胆寒的事情&#xff0c;特别是随着 SPA 项目的盛行&#xff0c;前端白屏的情况变得更为复杂且棘手起来&#xff08; 这里的白屏是指页面一直处于白屏状态 &#xff09; 要是能检测到页面白屏就太棒了&#xff0c;开发者谁都不…...

编译原理【文法设计】—每个a后面至少一个b、ab个数相等,ab个数不相等的所有串

编译原理【文法设计】—设计每个a后面至少一个b、ab个数相等&#xff0c;ab个数不相等的文法为字母表Σ{a,b}Σ\{a,b\}Σ{a,b}上的下列每个语言设计一个文法 (a) 每个a后面至少有一个b的所有串 首先&#xff0c;每个a后面至少有一个b的正规式怎么写呢&#xff1f;每个a都需要…...

【死磕数据库专栏启动】在CentOS7中安装 MySQL5.7版本实战

文章目录前言实验环境一. 安装MySQL1.1 配置yum源1.2 安装之前的环境检查1.3 下载MySQL的包1.4 开始使用yum安装1.5 启动并测试二. 设置新密码并重新启动2.1 设置新密码2.2 重新登录测试总结前言 学习MySQL是一件比较枯燥的事情&#xff0c;学习开始之前要先安装MySQL数据库&a…...

23.2.23 22湖北省赛 B

好久没打卡了, 随便找的个水题写 这题是简单难度的 ab1 所以可以找到固定规律, 通过手动模拟可以发现 假设两种水叫做a水和b水 先倒入a水 1:0 倒入b水 1:1 此时水杯为 倒出一半的混合物, 因为ab水互溶, 比例不变 再加入a水或者b水将容器填满 比例现在变为 3:1 混合之后再…...

ONLYOFFICE中的chatGPT 是如何编写毕业论文以及翻译多种语言的

前言 chatGPT这款软件曾被多个国家的大学禁用&#xff0c;我们也多次在网上看到chatGPT帮助应届毕业生编写毕业答辩论文&#xff0c;但是这款软件目前还没有在国内正式上线&#xff0c;ONLYOFFICE7.3版本更新后呢&#xff0c;就添加了chatGPT该功能&#xff0c;并且正常使用。 …...

QT入门Containers之QStackedWidget

目录 一、QStackedWidget界面相关 1、布局介绍 2、插入界面 3、插入类界面 二、Demo展示 此文为作者原创&#xff0c;创作不易&#xff0c;转载请标明出处&#xff01; 一、QStackedWidget界面相关 1、布局介绍 QStackedWidget这个控件在界面布局时&#xff0c;使用还…...

Java学习-IO流-字节缓冲流

Java学习-IO流-字节缓冲流 IO流体系↙ ↘字节流 字符流↙ ↘ ↙ ↘InputStream OutputStream Reader Writer↓ ↓ ↓ ↓ FileInputStream FileOutputStream FileRe…...

C++这么难,为什么我们还要学习C++?

前言 C 可算是一种声名在外的编程语言了。这个名声有好有坏&#xff0c;从好的方面讲&#xff0c;C 性能非常好&#xff0c;哪个编程语言性能好的话&#xff0c;总忍不住要跟 C 来单挑一下&#xff1b;从坏的方面讲&#xff0c;它是臭名昭著的复杂、难学、难用。当然&#xff…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...