达梦8数据库适配ORACLE的8个参数
目录
1、概述
1.1 概述
1.2 实验环境
2、参数简介
3、实验部分
3.1 参数BLANK_PAD_MODE
3.2 参数COMPATIBLE_MODE
3.3 参数ORDER_BY_NULLS_FLAG
3.4 参数DATETIME_FMT_MODE
3.5 参数PL_SQLCODE_COMPATIBLE
3.6 参数CALC_AS_DECIMAL
3.7 参数ENABLE_PL_SYNONYM
3.8 参数VIEW_ACCESS_MODE
1、概述
1.1 概述
本文整理了达梦8数据库适配ORACLE的8个参数,设计了3个实验场景,通过实验观察各参数在数据库中的作用。
1.2 实验环境
达梦数据库版本:DM Database 64 V8 03134284094-20231108-207962-20067
ORACLE版本:V19.3
2、参数简介
参数 | 含义 | 缺省值 | 属性 | 适配ORACLE值 |
BLANK_PAD_MODE | 设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。取值 0 或 1。0不兼容,1 兼容。 | 0 | 不可修改 | 1 |
COMPATIBLE_MODE | 是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL,5:兼容 DM6,6:部分兼容 TERADATA,7:部分兼容 POSTGRES | 0 | 静态 | 2 |
ORDER_BY_NULLS_FLAG | 控制排序时 NULL 值返回的位置,取值 0、1、2、3。0 表示 NULL 值始终在最前面返回;1 表示 ASC 升序排序时NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回,在参数等于 1 的情况下,NULL 值的返回与 ORACLE保持一致;2 表示 ASC 升序排序时 NULL 值在最前面返回,DESC 降序排序时 NULL 值在最后返回,在参数等于2 的情况下,NULL 值的返回与 MYSQL 保持一致;3 表示在取值为 1 的基础上,将空串置于 NULL 值和非空值之间 | 0 | 动态,会话级 | 1 |
DATETIME_FMT_MODE | 是否兼容 ORACLE 的五种日期时间类型的默认日期时间格式。0:不兼容;1:兼容 注:此参数被动态修改后仅影响新生成的会话 | 0 | 动态,系统级 | 1 |
PL_SQLCODE_COMPATIBLE | 默认值为 0;如果设置为 1,则 PL 的异常处理中,SQLCODE 的错误码值需要尽量与 ORACLE 一致 | 0 | 静态 | 1 |
CALC_AS_DECIMAL | 0:默认值,表示整数类型的除法、整数与字符或 BINARY 串的所有四则运算,结果都处理成整数; 1:表示将整数类型的除法、整数与字符或 BINARY 串的除法转换为 DECIMAL 处理; 2:表示将整数类型的除法、整数与字符或 BINARY 串的所有四则运算都转换为 DECIMAL 处理; 3:所有涉及整型的四则运算全部转换为 DECIMAL 处理。 注: 该 参 数 只有 在 USE_PLN_POOL 为 0 或 1 时有 效。 当 USE_PLN_POOL 为 2 或 3 时, 按 照CALC_AS_DECIMAL=2 处理 | 0 | 静态 | 1 |
ENABLE_PL_SYNONYM | 是否可以通过同义词执行非系统用户创建的包或者存储过程。1是,0否。若设置为0,在解析过程/包名时,如果借助了同义词,则这些对象要么是系统内部创建的,或者其创建者必须为系统用户,否则一律报错 | 0 | 动态,系统级 | 1 |
VIEW_ACCESS_MODE | 指定视图的自主访问控制机制。0:兼容 DM;1:兼容 ORACLE | 0 | 静态 | 1 |
3、实验部分
3.1 参数BLANK_PAD_MODE
从oracle迁移数据到达梦数据库中,有时会遇到主键或唯一约束创建失败的情况,这有可能跟BLANK_PAD_MODE的设置有关,通常将BLANK_PAD_MODE设置为1可以解决问题。
测试方案说明:在表中插入3条数据,数据分别是字符串a、a加1个空格、a加两个空格。在ORACLE中这样的3条数据不被视为重复数据。在达梦8中,默认情况下视为重复数据,创建主键会报错。
1)在DM8中测试BLANK_PAD_MODE=0
准备测试数据
create table tb_dm8_001
(
C1 varchar2(10) not null
);--第1条数据是:'a'
insert into tb_dm8_001 values('a');
commit;--第2条数据是:'a'+1个空格
insert into tb_dm8_001 values('a ');
commit;--第3条数据是:'a'+2个空格
insert into tb_dm8_001 values('a ');
commit;
测试是否能成功创建主键
ALTER table tb_dm8_001 ADD PRIMARY KEY(c1);
测试结果:BLANK_PAD_MODE=0时,用案例数据创建主键失败。
2)在DM8中测试BLANK_PAD_MODE=1
BLANK_PAD_MODE是初始化参数,不能修改,我们创建个新库做下面的测试。
dminit path=/dm8/datadm db_name=dbtest01 BLANK_PAD_MODE=1
启动新库
dmserver path=/dm8/datadm/dbtest01/dm.ini
准备测试数据
disql SYSDBA/SYSDBA
create table tb_dm8_002
(
C1 varchar2(10) not null
);
--第1条数据是:'a'
insert into tb_dm8_002 values('a');
commit;--第2条数据是:'a'+1个空格
insert into tb_dm8_002 values('a ');
commit;--第3条数据是:'a'+2个空格
insert into tb_dm8_002 values('a ');
commit;
测试是否能成功创建主键
ALTER table tb_dm8_002 ADD PRIMARY KEY(c1);
测试结果:BLANK_PAD_MODE=1时,用案例数据创建主键成功。
3)ORACLE中的相关测试
准备测试数据
create table tb_oracle_001
(
C1 varchar2(10) not null
);--第1条数据是:'a'
insert into tb_oracle_001 values('a');
commit;--第2条数据是:'a'+1个空格
insert into tb_oracle_001 values('a ');
commit;--第3条数据是:'a'+2个空格
insert into tb_oracle_001 values('a ');
commit;
测试是否能成功创建主键
ALTER table tb_oracle_001 ADD PRIMARY KEY(c1);
测试结果:ORACLE中用案例数据创建主键成功。
3.2 参数COMPATIBLE_MODE
静态参数,修改后要重启数据库。
是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL,5:兼容 DM6,6:部分兼容 TERADATA,7:部分兼容 POSTGRES
这个参数是达梦数据库中最重要的兼容性参数,涉及内容较多,实验略。
3.3 参数ORDER_BY_NULLS_FLAG
动态,会话级参数:
控制排序时 NULL 值返回的位置,取值 0、1、2、3。
0 表示 NULL 值始终在最前面返回;
1 表示 ASC 升序排序时NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回,在参数等于 1 的情况下,NULL 值的返回与 ORACLE保持一致;
1)在DM8中测试ORDER_BY_NULLS_FLAG=0
准备测试数据
create table tb_dm8_order_null_0
(
id int,
C1 varchar2(10)
);
insert into tb_dm8_order_null_0 values(1,'a');
insert into tb_dm8_order_null_0 values(2,'b');
insert into tb_dm8_order_null_0 values(3,'c');
insert into tb_dm8_order_null_0 values(4,null);
commit;
测试
select * from tb_dm8_order_null_0 order by c1 asc;
select * from tb_dm8_order_null_0 order by c1 desc;
测试结果:ORDER_BY_NULLS_FLAG=0时,NULL 值始终在最前面返回。
2)在DM8中测试ORDER_BY_NULLS_FLAG=1
动态参数,设置后立即生效
sp_set_para_value(1,'ORDER_BY_NULLS_FLAG',1);
准备测试数据
create table tb_dm8_order_null_1
(
id int,
C1 varchar2(10)
);
insert into tb_dm8_order_null_1 values(1,'a');
insert into tb_dm8_order_null_1 values(2,'b');
insert into tb_dm8_order_null_1 values(3,'c');
insert into tb_dm8_order_null_1 values(4,null);
commit;
测试
select * from tb_dm8_order_null_1 order by c1 asc;
select * from tb_dm8_order_null_1 order by c1 desc;
测试结果:ORDER_BY_NULLS_FLAG=1时,ASC 升序排序时NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回。
3)在ORACLE中的相关测试
准备测试数据
create table tb_oracle_order_null
(
id int,
C1 varchar2(10)
);
insert into tb_oracle_order_null values(1,'a');
insert into tb_oracle_order_null values(2,'b');
insert into tb_oracle_order_null values(3,'c');
insert into tb_oracle_order_null values(4,null);
commit;
测试
select * from tb_oracle_order_null order by c1 asc;
select * from tb_oracle_order_null order by c1 desc;
测试结果:在ORACLE中, ASC升序排序时NULL 值在最后返回,DESC 降序排序时 NULL 值在最前面返回
3.4 参数DATETIME_FMT_MODE
动态系统级参数,是否兼容 ORACLE 的五种日期时间类型的默认日期时间格式。0:不兼容;1:兼容。 注:此参数被动态修改后仅影响新生成的会话
1)在DM8中测试DATETIME_FMT_MODE=0
日期格式为:YYYY-MM-DD
2)在DM8中测试DATETIME_FMT_MODE=1
动态系统级参数,不需要重启数据库
sp_set_para_value(1,'DATETIME_FMT_MODE',1);
进入新会话测试
日期部分格式为:DD-MM月-YY
3)在ORACLE中的相关测试
在ORACLE中测试
日期格式为:DD-MM月-YY
3.5 参数PL_SQLCODE_COMPATIBLE
静态参数,默认值为 0;如果设置为 1,则 PL 的异常处理中,SQLCODE 的错误码值需要尽量与 ORACLE 一致。
1)在DM8中测试PL_SQLCODE_COMPATIBLE=0
制造异常1,让系统抛出异常
beginselect 2/0 from dual;
end;
/
除0错误代码是-6103
制造异常2,做异常处理,查看SQLCODE的代码值
BEGINselect 2/0 from dual;
EXCEPTION
WHEN OTHERS THEN SELECT SQLCODE ||' '|| SQLERRM;
END;
/
除0错误代码还是-6103
2)在DM8中测试PL_SQLCODE_COMPATIBLE=1
静态参数,需要重启数据库
sp_set_para_value(2,'PL_SQLCODE_COMPATIBLE',1); -- 重启服务后生效
制造异常1,让系统抛出异常
BEGINselect 2/0 from dual;
END;
/
虽然配置了兼容性参数PL_SQLCODE_COMPATIBLE=1,但是在系统抛出异常的场景中,除0错误码依然是-6103
制造异常2,做异常处理,查看SQLCODE的代码值
BEGINselect 2/0 from dual;
EXCEPTION
WHEN OTHERS THEN SELECT SQLCODE ||' '|| SQLERRM;
END;
/
测试结果:PL_SQLCODE_COMPATIBLE=1时,错误码发生了变化,现在是-1476
小结,通过上面的测试我们看到:
(1)系统抛出的异常代码不会去兼容ORACLE
(2)异常处理代码中的SQLCODE,可以配置成兼容ORACLE
3)在ORACLE中的相关测试
执行测试代码
declarevar_1 number(10,2);
beginselect 2/0 into var_1 from dual;
end;
/
Oracle除数为0的代码是1476
3.6 参数CALC_AS_DECIMAL
静态参数。
0:默认值,表示整数类型的除法、整数与字符或 BINARY 串的所有四则运算,结果都处理成整数;
1:表示将整数类型的除法、整数与字符或 BINARY 串的除法转换为 DECIMAL 处理;
2:表示将整数类型的除法、整数与字符或 BINARY 串的所有四则运算都转换为 DECIMAL 处理;
3:所有涉及整型的四则运算全部转换为 DECIMAL 处理。
注: 该 参 数 只有 在 USE_PLN_POOL 为 0 或 1 时有 效。 当 USE_PLN_POOL 为 2 或 3 时, 按 照CALC_AS_DECIMAL=2 处理
1)在DM8中测试CALC_AS_DECIMAL=0
执行测试代码
select 2/3 ;
select 5/4;
select 2.0/3;
小结:
1)这个参数适用于除数和被除数都是整数,具体可以观察实验中2/3与2.0/3的区别。
2)我们看到2/3的结果是0,而不是1,说明系统采用的是“舍位进位”而不是“四舍五入进位”。
2)在DM8中测试CALC_AS_DECIMAL=1
静态参数,配置后需要重启数据库生效
sp_set_para_value(2,'CALC_AS_DECIMAL',1);
执行测试代码
select 2/3 ;
select 5/4;
select 2.0/3;
测试结果:除法的结果有小数部分了。
3)在ORACLE中的相关测试
执行测试代码
select 2/3 from dual;
select 5/4 from dual;
select 2.0/3 from dual;
小结:通过实验我们发现,配置CALC_AS_DECIMAL=1后,达梦和ORACLE的小数位精度还是有一定差异的。
3.7 参数ENABLE_PL_SYNONYM
动态,系统级。是否可以通过同义词执行非系统用户创建的包或者存储过程。1是,0否。若设置为0,在解析过程/包名时,如果借助了同义词,则这些对象要么是系统内部创建的,或者其创建者必须为系统用户,否则一律报错
1)在DM8中测试ENABLE_PL_SYNONYM=0
创建非系统用户
create user user01 identified by "usr01";
grant "PUBLIC","RESOURCE","SOI","VTI" to user01;
用新用户登录
disql user01/user01
创建存储过程
CREATE OR REPLACE PROCEDURE "USER01"."P_TEST01" ()
ASVARNAME INT;
BEGINSELECT 1 INTO VARNAME;
END;
创建同义词
CREATE SYNONYM "USER01"."P_T01" FOR "USER01"."P_TEST01";
执行存储过程
CALL USER01.P_TEST01();
用同义词执行存储过程
CALL USER01.P_T01();
我们看到,ENABLE_PL_SYNONYM=0时,用同义词执行存储过程失败。
2)在DM8中测试ENABLE_PL_SYNONYM=1
动态参数,不需要重启
sp_set_para_value(1,'ENABLE_PL_SYNONYM',1);
调整完参数,再次测试用同义词执行非系统用户创建的存储过程
CALL USER01.P_T01();
测试结果:ENABLE_PL_SYNONYM=1时,用同义词执行存储过程成功。
3)在ORACLE中的相关测试
在ORACLE中测试,准备:
create user c##USER01 identified by "usr01";
grant PUBLIC,RESOURCE to c##USER01;CREATE OR REPLACE PROCEDURE c##user01.P_ORACLE_TEST01
ASVARNAME INT;
BEGINSELECT 1 INTO VARNAME FROM DUAL;
END;CREATE SYNONYM c##USER01.P_S01 FOR c##USER01.P_ORACLE_TEST01;
用同义词执行存储过程
CALL c##USER01.P_S01();
测试结果:ORACLE中默认可以用同义词执行存储过程。
3.8 参数VIEW_ACCESS_MODE
静态参数。
指定视图的自主访问控制机制。0:兼容 DM;1:兼容 ORACLE
实验部分待补充。(博主没有用过这个参数,有了解这个参数使用场景的欢迎在评论区留言)
本文结束!
参考文档:《DM8系统管理员手册》
2024年11月9日
相关文章:

达梦8数据库适配ORACLE的8个参数
目录 1、概述 1.1 概述 1.2 实验环境 2、参数简介 3、实验部分 3.1 参数BLANK_PAD_MODE 3.2 参数COMPATIBLE_MODE 3.3 参数ORDER_BY_NULLS_FLAG 3.4 参数DATETIME_FMT_MODE 3.5 参数PL_SQLCODE_COMPATIBLE 3.6 参数CALC_AS_DECIMAL 3.7 参数ENABLE_PL_SYNONYM 3.8…...

CSS实现文字渐变效果
效果图: 代码: h1 {font-size: 100px;color:linear-gradient(gold,deeppink);background-image:linear-gradient( -gold, deeppink); /*春意盎然*///背景被裁剪成文字的前景色。background-clip:text;/*兼容内核版本较低的浏览器*/-webkit-background-c…...
3. Redis的通用命令介绍
Redis作为一个高效的键值对存储系统,不仅支持多种数据结构,还提供了丰富的通用命令,这些命令适用于各种场景。本文将详细介绍Redis的常用通用命令,并结合具体应用场景,帮助你理解这些命令的功能与使用时机。 1. 键(key…...
[spark面试]spark与mapreduce的区别---在DAG方面
1、spark中的task是以线程实现的,而mapreduce中是以进程实现的。 进程的频繁启动和停止会增加资源的消耗。 2、spark中支持DAG,而mapreduce不支持DAG DAG的使用:为什么支持DAG会更加高效 1)、在DAG图中,会将一个job…...

tomcat启动失败和缓存清理办法
tomcat只在学校接触过并且是在window xp和win7的电脑上配置过(中途升级过电脑系统),只记得在windows系统上可以将其设置成服务管理。但我已毕业10多年了,学的知识早就不知道丢哪里了。这次为了修改一个07,08年的项目&a…...

【软件测试】需求的概念和常见模型(瀑布、螺旋、增量、迭代)
1. 什么是需求 在企业中,经常会听到:用户需求和软件需求 用户需求:没用经过合理的评估,通常就是一句话(开发一个五彩斑斓的黑)软件需求:开发人员和测试人员执行工作的依据 1.2 软件需求 在工…...

Python爬虫如何处理验证码与登录
Python爬虫如何处理验证码与登录 Python 爬虫在抓取需要登录的网站数据时,通常会遇到两个主要问题:登录验证和验证码处理。这些机制是网站用来防止自动化程序过度抓取数据的主要手段。本文将详细讲解如何使用 Python 处理登录与验证码,以便进…...

QT添加资源文件
QT添加资源文件 1.概述 这篇文章介绍为QT项目添加资源文件,例如项目中使用到的图片、音视频文件等等 2.添加资源文件 拷贝资源文件到项目中 在项目mainwindow.app文件上右键选择show in Finder 打开项目所在目录。 将图片文件夹复制到该目录中 创建资源文件结…...

负载均衡式在线oj项目开发文档(个人项目)
项目目标 需要使用的技术栈: 这个项目共分成三个模块第一个模块为公共的模块,用于解决字符串处理,文件操作,网络连接等等的问题。 第二个模块是一个编译运行的模块,这个模块的主要功能就是将用户的代码收集上来之后要…...
Python小白学习教程从入门到入坑------第二十六课 单例模式(语法进阶)
在这个节课的开始,我们先回顾一下面向对象课程中学的构造函数__init__() 目录 一、__init__() 和 __new__() 1.1 __init__() 1.2 __new__() 二、单例模式 2.1 特点 2.2 通过classmethod实现单例模式 2.3 通过装饰器实现单例模式 2.3 通过重写__new__() 实现…...

革命性AI搜索引擎!ChatGPT最新功能发布,无广告更智能!
文章目录 零、前言一、ChatGPT最新AI搜索引擎功能操作指导实战1:搜索新闻实战2:搜索天气实战3:搜索体育消息 二、感受 零、前言 大人,时代变了。 最强 AI 助力下的无广告搜索引擎终于问世。我们期待已久的这一刻终于到来了,从今天起,ChatGPT…...
windows C#-使用异常
在 C# 中,程序中的运行时错误通过使用一种称为“异常”的机制在程序中传播。 异常由遇到错误的代码引发,由能够更正错误的代码捕捉。 异常可由 .NET 运行时或由程序中的代码引发。 一旦引发了一个异常,此异常会在调用堆栈中传播,直…...

玩的花,云产品也能拼团了!!!
说起拼单大家都不陌生,电商一贯的营销手段,不过确实可以给消费者省下一笔钱。双11到了,腾讯云产品也玩起了拼团,这明显是对开发人员和各企业的福利。 对于有云产品需求的个人或企业,这次绝对是难得的一次薅羊毛机会。…...

HTML+CSS基础【快速上手】
目录 一、HTML展示 1、HTML基础结构 2、认识元素属性 (1)元素属性理解 (2)实例 3、自结束标签和注释 (1)自结束标签 (2)注释 4、语义化标签 (1)语义…...
mysql分布式锁
大家好,今天我们来看下如何使用本地MySql实现一把分布式锁,以及Mysql实现分布式锁的原理是怎么样的 MySql实现分布式锁有三种方式 1:基于行锁实现分布式锁 k1.png 实现原理 首先我们的表lock要提前存好相对应的lockName,这时候…...

探索四款强大的免费报表工具,提升数据可视化能力
概述 在当今数据驱动的时代,报表工具成为了企业分析和可视化数据的重要助手。通过这些工具,用户可以轻松地将原始数据转换为直观易懂的报表,帮助决策者更快地获取信息和做出判断。本文介绍了四款免费的报表工具,包括山海鲸报表、…...
电机可靠性影响因素研究
电机作为现代工业自动化和日常生活中不可或缺的核心设备,其可靠性直接关系到系统的整体性能和安全性。电机的可靠性不仅影响生产效率、降低维护成本,还有助于提高产品的质量和企业的市场竞争力。 一、电机可靠性的概念 电机可靠性是指电机在规定条件下和…...
GB/T 28046.4-2011 道路车辆 电气及电子设备的环境条件和试验 第4部分:气候负荷(6)
写在前面 本系列文章主要讲解道路车辆电气及电子设备的环境条件和试验GB/T 28046标准的相关知识,希望能帮助更多的同学认识和了解GB/T 28046标准。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 第4部分:气候负荷 5. 试验和要求 5.8 流动混合气体腐蚀试验 5.8.1 目的…...
后端接口返回二进制文件,前端 window.opent预览展示
详细步骤 1.修改 PreviewApi 函数: 设置 responseType 为 ‘arraybuffer’,以接收二进制数据。 export const PreviewApi (data) > request({method: post,url: /dev-api/preview,responseType: arraybuffer,data });3.处理响应: 使用…...

基于STM32的红外遥控接收器
1. 引言 红外遥控技术广泛应用于电视、空调等家用电器的控制。通过本项目,我们将学习如何使用STM32开发板搭建一个红外遥控接收器,能够接收来自遥控器的信号,并在串口终端上显示按键信息。 2. 环境准备2.1 硬件需求 - STM32开发板࿰…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...