随笔分类 -  PLSQL

摘要:KingbaseES 的PLSQL对象包括函数、存储过程、触发器、包、包体、对象类型、对象类型体和匿名块,其中匿名块即用即销,不具有状态属性,SQL中存在依赖的常见对象是表,视图,索引,自定义类型,自定义操作符等等。在使用编码过程会存在相互引用和被引用,就会导致对象的增删改无法“顺利”进行,本文针对 阅读全文
posted @ 2024-07-26 11:05 KINGBASE研究院 阅读(43) 评论(0) 推荐(0) 编辑
摘要:文章概述 本文通过某项目一次针对对象类型中一些不支持的功能项进行代码改造为契机,重新回顾和熟悉了对象类型继承,子父对象转换,函数重载等概念和应用,包括集合类型的一些编码应用场景。 通过这个案例可以快速帮助我们熟悉和深刻对PSLQL对象类型和集合类型能力域的掌握。 一,问题背景 相对于Oracle的P 阅读全文
posted @ 2024-04-03 17:02 KINGBASE研究院 阅读(30) 评论(0) 推荐(0) 编辑
摘要:文章概述 参数 ora_statement_level_rollback 控制KingbaseES 是否实现类似oracle 语句级的回滚。当该参数打开时,如果事务操作失败,仅会回滚触发异常的语句,避免了全部操作的回滚。默认情况下该参数为OFF,也就是说DML语句在PLSQL块中出错后默认是全部回滚 阅读全文
posted @ 2024-03-29 18:37 KINGBASE研究院 阅读(48) 评论(0) 推荐(0) 编辑
摘要:文章概要: 本文对主要就NULL值及其相关处理函数进行讨论,同时也介绍了ora_input_emptystr_isnull参数 一,关于NULL值 1,sql中的null值 null 值代表未知数据,或者说不确定的值,它与空字符串、0 是不一样的 null 值的处理方式与其他值不同, NULL与任何 阅读全文
posted @ 2023-09-19 18:35 KINGBASE研究院 阅读(1146) 评论(0) 推荐(0) 编辑
摘要:文章概要: 本文在https://www.cnblogs.com/kingbase/p/15703611.html 一文的基础上总结了Kingbase ES中函数能支持的return语句,整体上兼容oracle的基础上,也和PG语法一样。 同时列举了sqlserevr表值函数和代码故障案例。 一,关 阅读全文
posted @ 2023-09-18 16:15 KINGBASE研究院 阅读(212) 评论(0) 推荐(0) 编辑
摘要:文章概要: KES的SQL的语法暂时不兼容oracle的自定义聚合函数的创建语法和流程,但是可以使用KES已支持的语法改写。 本文整理和简单解析了自定义聚合函数的原理和解读了范例代码。 并根据客户代码进行了改写。 一,oracle自定义聚合函数的简析 oracle的自定义聚合函数需要实现4个ODCI 阅读全文
posted @ 2023-09-18 16:15 KINGBASE研究院 阅读(127) 评论(0) 推荐(0) 编辑
摘要:文章概要: 本文对主要就PLSQL的异常传播进行知识性小结,分为四个部分,PLSQL异常传播小结,编写小案例验证5种传播规则,示例了一个容易理解出错的案例,以及使用goto结合异常处理的案例。 一,异常传播规则 PLSQL块结构,典型如下: declare --声明区域 begin --执行区域 e 阅读全文
posted @ 2023-09-18 16:15 KINGBASE研究院 阅读(125) 评论(0) 推荐(0) 编辑
摘要:文章概要: 某项目将数据从 SQLSERVER 迁移到 KES。其中SQLSERVER中触发器用到了 TRIGGER_NESTLEVEL() 函数,KES并不能直接支持该函数。 起初在分析该问题时想复杂了本文做了一次记录。实际上在kes兼容sqlsevrer基础语法,直接简单使用SYS_TRIGGE 阅读全文
posted @ 2023-09-18 14:40 KINGBASE研究院 阅读(65) 评论(0) 推荐(0) 编辑
摘要:前言 本文介绍游标在PLSQL和SQL层跨事务使用案例,及其案例一则。 本文验证版本: db0=# select version(); db0-# / version KingbaseES V008R006C007B0024 on x86_64-pc-linux-gnu, compiled by g 阅读全文
posted @ 2023-09-18 14:26 KINGBASE研究院 阅读(57) 评论(0) 推荐(0) 编辑
摘要:文章概要: 基于前面的博文《Kingbase ES 自定义聚合函数和一次改写案例》这篇文章,我们只考虑了自定义聚合函数非并行的情况, 因此,本篇文章将着重解析一下使用PLPGSQL编写并行聚合函数,同时对比了非并行聚合函数的运行效果。 一,KES自定义聚合函数入门解析 如同前面的文章,KES能支持的 阅读全文
posted @ 2023-09-18 14:23 KINGBASE研究院 阅读(74) 评论(0) 推荐(0) 编辑
摘要:本文基于Kingbase和SqlServer的INSTEAD OF 触发器主要功能特点进行对比浅析,同时针对SqlServer 的INSTEAD OF 触发器提出了多种kingbase环境的等价代码方案。 ## 一,SqlServer 的INSTEAD OF 触发器 它通常用来替换触发动作的。 1, 阅读全文
posted @ 2023-05-19 15:19 KINGBASE研究院 阅读(133) 评论(0) 推荐(0) 编辑
摘要:隐式游标介绍 Oracle数据库迁移到KingbaseES数据库,不需要将源PL/SQL脚本,大规模修改为KES语法,因为KingbaseES支持大部分PLSQL语法。 1、隐式游标 隐式游标是由 PL/SQL 构造和管理的会话游标。 每次运行 SELECT 或 DML 语句时,PL/SQL 都会打 阅读全文
posted @ 2023-03-02 16:16 KINGBASE研究院 阅读(69) 评论(0) 推荐(0) 编辑
摘要:KingbaseES 的存储过程内的事务默认与外部调用者的事务是合并在一起的:存储过程内部的提交或回退会影响外部事务,而外部事务的提交或回退也会影响存储过程内部的事务。可以通过采用自治事务,将存储过程内部作为独立的事务进行,从而存储过程内部的事务提交与否不影响外部事务。 例子1:子过程内部提交影响外 阅读全文
posted @ 2023-03-02 15:48 KINGBASE研究院 阅读(87) 评论(0) 推荐(0) 编辑
摘要:KingbaseES PLSQL 从 V8R6C4 版本开始,支持用户自定义异常。具体例子如下: create or replace procedure p_test() as error_number EXCEPTION; x integer:=1; begin if x < 10 then RA 阅读全文
posted @ 2023-02-03 11:55 KINGBASE研究院 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1、RETURN 如果没有使用表达式,RETURN 命令用于告诉这个函数已经完成执行了,如示例2. 如果返回标量类型,那么可以使用任何表达式。 示例1: 带有表达式return CREATE OR REPLACE FUNCTION getCompFoo1(in_col1 int, in_col2 T 阅读全文
posted @ 2023-01-12 17:53 KINGBASE研究院 阅读(192) 评论(0) 推荐(0) 编辑
摘要:对于函数与存储过程,其调用方式不同。函数可以通过select or call 方式调用,而存储过程只能通过call 方式调用。以下具体举例说明。 1、创建调用函数和过程 函数: create or replace function func01 returns integer as cnt inte 阅读全文
posted @ 2023-01-12 17:15 KINGBASE研究院 阅读(276) 评论(0) 推荐(0) 编辑
摘要:什么是SQL函数? SQL函数包体是一些可执行的SQL语言。同时包含1条以上的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。 除非SQL函数声明为返回void,否则最后一条语句必须是SELECT语句。 在简单情况下,返回最后一条查询结果的第一行。 如果最后一个查询不返回任何行,那么该 阅读全文
posted @ 2022-12-21 15:46 KINGBASE研究院 阅读(114) 评论(0) 推荐(0) 编辑
摘要:调用者权利和定义者权利子句 指定子程序的权利属性。权利属性影响单元在运行时,执行的SQL语句的名称解析和权限检查。 PG模式: SECURITY INVOKER SECURITY DEFINER Oracle模式: AUTHID CURRENT_USER AUTHID DEFINER 一、测试Kin 阅读全文
posted @ 2022-12-13 09:17 KINGBASE研究院 阅读(59) 评论(0) 推荐(0) 编辑
摘要:对于Oracle,对于数据修改的操作通过存储过程处理,而对于函数一般不进行数据修改操作。同时,函数可以通过 Select 进行调用,而存储过程则不行。 一、对于volatile 函数的行为 1、Oracle 行为 创建函数: create or replace function fun01 retu 阅读全文
posted @ 2022-05-07 17:15 KINGBASE研究院 阅读(326) 评论(0) 推荐(0) 编辑
摘要:方法一: 通过ksql -v [kingbase@singlekbdb ~]$ ksql -Usystem -p54321 test -v id=2 -c '\i 1.sql;' ksql:1.sql:9: 注意: time is 2020-09-18 00:00:00 ANONYMOUS BLOC 阅读全文
posted @ 2022-04-26 10:02 KINGBASE研究院 阅读(61) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示