lightdb专题

LightDB Pro*C SQLDA介绍

背景介绍 SQLDA(SQL Descriptor Area)是与数据库交互的程序所使用的数据结构。它通常用于在执行 SQL 语句时传递数据、参数和结果。 一个 SQLDA是一种处理SELECT、FETCH或者DESCRIBE语句结果的高级方法。一个 SQLDA把数据中一行的数据及元数据项组合到一个数据结构中。 使用 SQLDA 的程序的一般流程是: 准备一个查询,并且为它声明一个游标。为结

统一SQL-支持Oracle到LightDB-Oracle特性转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:LightDB-Oracle 操作目标 LightDB数据库相关内容请参考:LightDB: 更快、更稳、更懂金融的分布式关系型数据库 LightDB数据库对Oracle特性做了兼容,由此当转换目标数据库是Ligh

LightDB ecpg 支持 exec sql execute ... end-exec【24.1】【oracle 兼容】

LightDB 从24.1 版本开始支持 oracle pro*c 中执行匿名块的语法(之前可以通过do 语句执行匿名块): EXEC SQL EXECUTEanonymous blockEND-EXEC; 因为匿名块不是SQL标准的一部分,所以此用法也不存在于SQL标准中。 示例 #include <stdio.h>#include <stdlib.h>#include <str

lightdb object支持authid current_user

文章目录 背景语法示例 背景 在信创适配中,从Oracle迁移过来的程序使用authid current_user。为此LightDB从24.1版本开始,对该功能进行了语法层面上的支持。 语法 CREATE [ OR REPLACE ] TYPE name opt_invoker_rights_clause as_is OBJECT ( [ object_type_elem

lightdb object支持static函数

文章目录 背景介绍语法示例 背景 在信创适配中,从Oracle迁移过来的程序使用STATIC函数。为此LightDB从24.1版本开始,对该功能进行了支持。 介绍 LightDB 24.1版本中对象方法包括下列几种: MEMBER方法:MEMBER方法可以被对象实例调用。通过调用MEMBER方法,可以访问对象实例的数据,通过SELF隐式参数可以访问对象的数据。 STAT

LightDB to_char 三入参函数支持

文章目录 背景函数示例 背景 在信创适配中,从Oracle迁移过来的程序使用了TO_CHAR函数。 LightDB-X 23.3版本已经支持了两个入参的TO_CHAR函数,并不支持三个入参的TO_CHAR函数。LightDB-X 23.4版本对三个入参的TO_CHAR函数进行了支持。 函数示例 准备数据, 在LightDB-X Oracle模式下运行如下SQL CREAT

lightdb plorasql集合类型新增可变数组

文章目录 背景集合类型可变数组可变数组示例 背景 在信创适配中,从Oracle迁移过来的存储过程使用到可变数组。因此在LightDB-X 23.4版本中对现有的集合类型进行了增强,添加了可变数组类型。 集合类型 在LightDB-X 23.4版本开始plorasql支持的集合类型同Oracle一致,覆盖了关联数组,可变数组和嵌套表三种类型,支持的方法如下 DELETE 从集

LightDB - 支持 curdate, current_date 函数[mysql兼容]

从23.4 版本开始, LightDB 支持mysql 的curdate, current_date 函数。 curdate, current_date current_date 与 curdate相同, 都是用来获取当前时间,下面是mysql 中的介绍: Returns the current date as a value in ‘YYYY-MM-DD’ or YYYYMMDD for

LightDB to_char 三入参函数支持

文章目录 背景函数示例 背景 在信创适配中,从Oracle迁移过来的程序使用了TO_CHAR函数。 LightDB-X 23.3版本已经支持了两个入参的TO_CHAR函数,并不支持三个入参的TO_CHAR函数。LightDB-X 23.4版本对三个入参的TO_CHAR函数进行了支持。 函数示例 准备数据, 在LightDB-X Oracle模式下运行如下SQL CREAT

LightDB - 支持 last_day 函数[mysql兼容]

从 23.4 开始 LightDB 支持 mysql 的 last_day 函数。 目前LightDB 实现last_day的与mysql 并不完成相同,会在示例中列举出不同点, 主要是以下几点: 对于错误日期mysql返回null,lightdb 是直接报错对于一些特殊日期,lightdb 不支持LightDB 只支持date 和text 类型(datetime 目前不支持) last_da

LightDB - append hint

在 oracle 中插入有两种模式: 传统插入:插入的时候使用表中已有的空闲空间,同时会经过buffer cache,在插入的过程中会维护引用完整性约束direct-path 插入:插入的时候不使用表中已有的空闲空间,直接在已有数据之后追加数据(直接在表的高水位线(HWM)以上插入), 经过buffer cache,直接插入数据文件,并且在插入的过程中不会维护引用完整性约束 可以通过使用 ap

LightDB - no_star_transformation

LightDB 从23.4开始支持 no_star_transformation hint。 在Oracle 中no_star_transformation hint 用于提示优化器不执行星型转换。LightDB 不支持星型转换,因此此hint总会起效,下面先介绍下星型转换,然后介绍下hint的用法。 Oracle 星型转换 星型转换是一种优化器转换,它避免了对星型模式中事实表的全表扫描(星型

LightDB 23.3 通过GUC参数控制commit fetch

背景 commit游标提交之后,可以继续使用fetch进行结果集的操作。commit和fetch结合使用功能开发时不考虑分布式。后续,又对分布式进行了测试,发现持有portal后,代码中会对querydesc进行非空判断。当querydesc为空时,LightDB数据库崩溃。修改成对querydesc作非空判断之后,又会导致之前使用一个全局变量接收portal的方案失败。现在一个sql执行完,p

LightDB-opt_param hint支持

LightDB 从23.4 版本开始支持opt_param hint, 用来设置优化器相关的guc参数,用法和oracle的opt_param 相同。 设置的参数需要是 LightDB的参数(不是oracle的参数)。参数名用单引号括起来字符串型的参数值也需要用单引号括起来作用于整条SQL 具体用法参考如下示例: 示例 表结构 create table test_opt_param1(k

lightdb Oracle模式下to_char支持格式‘HH24MiSS‘

文章目录 背景示例其他 背景 TO_CHAR(日期类型, 格式串) 函数根据格式串要求将日期类型的数据转为字符串, 以格式串HH24MISS举例,在Oracle中Hh24MiSS hh24miss结果都是一致的。 如下示例: SQL> select to_char(sysdate, 'HH24MISS') c1 , to_char(sysdate, 'Hh24MiSS')