化妆品可做的团购网站有哪些,广西建设网网上办事大厅个人版,珠海建设工程网站,wordpress 发布文章的函数↑ 关注“少安事务所”公众号#xff0c;欢迎⭐收藏#xff0c;不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽#xff0c;国产数据库#xff01;Halo DB! 三步走#xff0c;Halo DB 安装指引 ★ HaloDB是基于原生PG打造的新一代高性能安… ↑ 关注“少安事务所”公众号欢迎⭐收藏不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽国产数据库Halo DB! 三步走Halo DB 安装指引 ★ HaloDB是基于原生PG打造的新一代高性能安全自主可控全场景通用型统一数据库。 业内首次创造性的提出插件式内核架构设计通过配置的方式适配不同的应用场景打造全场景覆盖的能力满足企业大部分数据存储处理需求。从而消除数据孤岛降低系统复杂度保护企业既有投资降低企业成本。同时支持x86、arm等异构平台之间的混合部署。 或许大家对 Halo DB 在 Oracle 和 MySQL 的兼容性支持方面也非常感兴趣。 本文将介绍如何开启 HaloDB 的 Oracle 兼容模式以及基础使用方法。 HaloDB 的 Oracle 兼容模式 那么HaloDB 到底兼容哪些 Oracle 语法、视图、系统包呢 这里有一份部分清单可供参考。 Halo 数据库支持 Oracle 兼容语法 支持连接符 支持带别名的 UPDATE 支持匿名子查询 支持窗口函数 DISTINCT 操作 支持 DUAL 伪表 支持 SYSDATE/SYSTIMESTAMP 支持 ROWNUM 支持 ROWID 支持 MINUS 操作 支持 DECODE 函数不限制参数个数 支持 DBLINK 语法 支持 Oracle 格式的数值输出 支持 VARCHAR2/NUMBER/CLOB/BLOB 数据类型 支持 START WITH/CONNECT BY 语法 支持 IN 的特别语法例 SELECT * FROM a_table WHERE a IN b 支持 Oracle 格式的日期类型及运算 支持 LISTAGG/WM_CONCAT 函数 支持 HAVING/GROUP BY 子句顺序互换即 HAVING 子句可在GROUP BY 之前也可在 GROUP BY 之后 支持 NULL 与空串的等价转换 支持 Oracle 语法的序列取值 支持 Oracle 语法的 PROCEDURE/FUNCTION/PACKAGE 的创建 支持 ORDER BY 子句中使用列别名 支持 TABLE 函数 支持 MERGE INTO 语法 支持 WITHIN GROUP 语法 支持 Q’ 转义语法 支持 NLS_DATE_FORMAT 参数 支持 Oracle 的常用视图 Halo 数据库支持 Oracle 兼容的视图: DBA_SEGMENTS PRODUCT_COMPONENT_VERSION USER_CON_COLUMNS USER_CONSTRAINTS USER_IND_COLUMNS USER_OBJECTS USER_PROCEDURES USER_SOURCE USER_TAB_COLUMNS USER_TABLES Halo 数据库支持 Oracle 兼容的系统包: DBMS_ALERT DBMS_ASSERT DBMS_OBFUSCATION_TOOLKIT DBMS_OUTPUT DBMS_PIPE DBMS_RANDOM DBMS_UTILITY UTL_FILE UTL_I18N 等等。 清单很长这里就不再列举了详情可留言带你进《HaloDB产品吐槽群》。 开启 HaloDB 的 Oracle 兼容模式 修改配置文件 如需开启 Oracle 兼容模式需要先对数据库配置文件 postgresql.conf 进行调整。 #database_compat_mode postgresql -- database_compat_mode oracle#standard_parserengine_auxiliary on -- standard_parserengine_auxiliary on#transform_null_equals off -- transform_null_equals off#oracle.use_datetime_as_date false -- oracle.use_datetime_as_date true 其中 database_compat_mode 该参数表示 该参数为枚举类型表示数据库运行模式。 默认值为 postgresql其它可取值包括 oracle 、 mysql 、 sybase 、 sqlserver 、 db2 等。 standard_parserengine_auxiliary 该参数表示 是否需要标准编译引擎协同。默认值 on. transform_null_equals 该参数表示 由于针对NULL的任何操作都只会返回NULL所以要判断一个值是否为NULL一般只能用IS NULL来判断。 Halo提供了参数 transform_null_equals 来控制是否可以用“”操作符来判断一个值是否为NULL。 oracle.use_datetime_as_date 该参数表示 Oracle 的 date 类型带有日期和时间信息这和Halo的默认设置不同。 默认情况下Halo的date类型只包含日期datetime类型才包含日期和时间信息。 如果想要实现和Oracle相同的date类型可以将参数use_datetime_as_date设置为true (默认值是 off)。 重启 Halo 数据库 pg_ctl restart 创建 Oracle 扩展 针对需要启用 Oracle 解析引擎的数据库创建 Oracle 扩展 需要注意的是如需采用 oracle 模式新建库要创建扩展才能使用 oracle 语法。 create extension aux_oracle cascade; 查看已安装的扩展 halo0root# \dx List of installed extensions Name | Version | Schema | Description--------------------------------------------------------------------------------------------- aux_init | 1.0 | information_schema | Init Supplementary Extension aux_oracle | 1.8 | public | Halo Oracle Supplementary Extension pgcrypto | 1.3 | public | cryptographic functions plorasql | 1.0 | pg_catalog | Oracle Compatibal SQL (PL/SQL) procedural language plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language(5 rows) 测试 HaloDB 的 Oracle 兼容模式 1. 查看组件产品的版本和状态信息。 halo0root# table product_component_version; product | version | status-------------------------------------------------- Halo 14.10 | 1.0.14.10 (231130) | 64bit Production plpgsql | 1.0.14.10 (231130) | 64bit Production aux_init | 1.0 | 64bit Production plorasql | 1.0 | 64bit Production pgcrypto | 1.3 | 64bit Production aux_oracle | 1.8 | 64bit Production(6 rows) 2. 测试 DBMS_ASSERT 系统包 该系统包用于对输入值的属性进行验证。 ENQUOTE_NAME 方法表示用双引号引用字符串并检查其是否为合法的SQL标识符。 halo0root# SELECT DBMS_ASSERT.ENQUOTE_NAME(Hello, HaloDB); enquote_name----------------- hello, halodb(1 row)halo0root# SELECT DBMS_ASSERT.ENQUOTE_NAME(Hello, HaloDB, false); enquote_name----------------- Hello, HaloDB(1 row) 3. 验证和Oracle相同的date类型 确认 oracle.use_datetime_as_date 参数已开启。 halo0root# show oracle.use_datetime_as_date; oracle.use_datetime_as_date----------------------------- on(1 row) 验证步骤如下 halo0root# create table t (a date, b datetime);CREATE TABLEhalo0root# insert into t select now(),now();INSERT 0 1halo0root# table t; a | b------------------------------------------ 2024-05-28 12:09:11 | 2024-05-28 12:09:11(1 row) 总结 到此我们介绍了如何开启 HaloDB 的 Oracle 兼容模式并做了简单验证。 如果你也对这款“光环”数据库感兴趣欢迎转发、留言。 往期精彩 ▼ 哈喽国产数据库Halo DB! 从 PG 技术峰会南京站汲取的那些干货 PG 扩展推荐pgpasswd PG 密碼長度 即将告别PG 12建议升级到PG 16.3版本 PG Style! 盘点几个常用的 Postgres 环境变量 后 EL 7 时代PG 16 如何在 CentOS 7 上运行 -- / END / -- 如果这篇文章为你带来了灵感或启发就请帮忙点『赞』or『在看』or『转发』吧感谢(๑˃̵ᴗ˂̵) 本文由 mdnice 多平台发布