LightDB - ecpg 支持dml 中使用 return into 【24.1】

在之前的版本中ecpg 中只能使用returning into 来给c 变量赋值,如下:

exec sql update t1 set c ='aa' where id = 2 returning c into :c_val;

为了兼容oracle pro*c 中return into 的用法,从24.1 开始, LightDB 也支持通过return into 来返回return 的值到c变量中。使用方式如下:

示例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>static void
print_sqlca()
{fprintf(stderr, "==== sqlca ====\n");fprintf(stderr, "sqlcode: %ld\n", sqlca.sqlcode);fprintf(stderr, "sqlerrm.sqlerrml: %d\n", sqlca.sqlerrm.sqlerrml);fprintf(stderr, "sqlerrm.sqlerrmc: %s\n", sqlca.sqlerrm.sqlerrmc);fprintf(stderr, "sqlstate: %5s\n", sqlca.sqlstate);fprintf(stderr, "===============\n");
}int main() {exec sql begin declare section;char c_val[100] = {0};exec sql end declare section;ECPGdebug(1, stderr);EXEC SQL CONNECT TO tcp:postgresql://127.0.0.1:5432/test_o;EXEC SQL SET AUTOCOMMIT TO ON;EXEC SQL WHENEVER SQLWARNING SQLPRINT;EXEC SQL WHENEVER SQLERROR CALL print_sqlca();exec sql create table t1(id integer,t text,d1 numeric,d2 float8,c char(10));exec sql insert into t1 values(1, 'a', 1.0, 1, 'a'),(2, null, null, null, null),(4, 'd', 4.0, 4, 'd');exec sql update t1 set c ='aa' where id = 2 return c into :c_val;exec sql delete from t1 where id = 2 return c into :c_val;exec sql insert into t1 values(2,null, null,null,  'bb') return c into :c_val;exec sqlDo $$Beginupdate t1 set c ='aa' where id = 2 return c into :c_val;end;$$ Language plorasql;exec sqlDo $$Begindelete from t1 where id = 2 return c into :c_val;end;$$ Language plorasql;exec sqlDo $$Begininsert into t1 values(2,null, null,null,  'bb') return c into :c_val;end;$$ Language plorasql;EXEC SQL DROP table t1;exec sql disconnect;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome插件 | WEB 网页数据采集和爬虫程序

无边无形的互联网遍地是数据&#xff0c;品类丰富、格式繁多&#xff0c;包罗万象。数据采集&#xff0c;或说抓取&#xff0c;就是把分散各处的内容&#xff0c;通过各种方式汇聚一堂&#xff0c;是个有讲究要思考的体力活。君子爱数&#xff0c;取之有道&#xff0c;得注意遵…

mobile app 安全扫描工具MobSF了解下

可以干啥&#xff1a; static 静态分析 dynamic 动态分析 可以用来渗透了 如何docker安装 docker image 下载地址https://hub.docker.com/r/opensecurity/mobile-security-framework-mobsf/ setup 两行即可 1 docker pull opensecurity/mobile-security-framework-mobsf…

关于VScode远程编写linux SHELL的报错处理

使用vscode远程编写linux保存shell时&#xff0c;提示报错&#xff1a; 未能保存“shell”: 无法写入文件"vscode-remote:.../tmp/shell"(NoPermissions (FileSystemError): Error: EACCES: permission denied, open /tmp/shell) 大体意思是说&#xff1a;权限被拒…

Python | 从子目录文件导入父目录模块的方法

问题描述 我有两级目录&#xff0c;第一级称为parent_dir&#xff0c;第二级称为child_dir。现在在child_dir下&#xff0c;有一个py&#xff0c;称为child.py&#xff0c;在parent_dir下&#xff0c;也有一个py&#xff0c;称为parent.py。 我想从child.py中导入parent.py中…

Go Slice的底层实现原理深度解析

文章目录 切片的诞生&#xff1a;数组的延伸切片的结构初始化切片 切片的内存管理扩容机制 实例分析&#xff1a;切片的动态特性切片与性能性能对比 切片的并发安全并发场景下的切片操作 切片与接口切片与空接口 切片的遍历与操作遍历切片切片的切片操作 切片的垃圾回收切片的生…

年轻人怎么搞钱?

年轻人想要搞钱&#xff0c;可以考虑以下几个方面&#xff1a; 1. 创业&#xff1a;年轻人可以通过自己的创意&#xff0c;找到一个市场的空缺&#xff0c;开创自己的业务。可以从比较小的项目开始&#xff0c;逐渐扩大范围&#xff0c;积累经验和财富。 2. 投资&#xff1a;…

成为大佬之路--linux软件安装使用第000000021篇--linux安装docker

简介 Docker 是一个开源项目&#xff0c;诞生于 2013 年初&#xff0c;最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会&#xff0c;遵从了 Apache 2.0 协议&#xff0c;项目代码在 [GitHub](https://github.co…

Hadoop之HDFS——【模块二】数据管理

一、Namespace的概述 1.1.集群与命名空间的关系 类似于大集群与小集群之间的关系,彼此之间独立又相互依存。每个namespace彼此独立,Namespace工作时只负责维护本区域的数据,同时所有的namespace维护的文件都可以共用DataNode节点,为了区分数据属于哪些Namespace,DataNode…

强大而灵活的python装饰器

装饰器&#xff08;Decorators&#xff09; 一、概述 在Python中&#xff0c;装饰器是一种特殊类型的函数&#xff0c;它允许我们修改或增强其他函数的功能&#xff0c;而无需修改其源代码。装饰器在函数定义之后立即调用&#xff0c;并以函数对象作为参数。装饰器返回一个新…

力扣151--反转字符串中的单词(优)

清晰易懂&#xff0c;简单高效&#xff01; 大体思路&#xff1a; 每次截取到想要的单词&#xff0c;拼接到新的sb中&#xff0c;过程中伴随双指针进行空格位置指向控制&#xff0c; 其中如果start指针如果0的情况要放在第一个判断条件防止边界条件失效&#xff0c;并且这种…

Linux系统运维脚本:shell脚本查看一定网段范围在线网络设备的ip地址和不在线的网络设备的数量(查看在线和不在线网络设备)

目 录 一、需求说明 二、解决方案 &#xff08;一&#xff09;解决思路 &#xff08;二&#xff09;方案 三、脚本程序实现 &#xff08;一&#xff09;脚本代码和解释 1、脚本代码 2、代码解释 &#xff08;二&#xff09;脚本验证 1、脚本编辑…

CrossOver 24下载-CrossOver 24 for Mac下载 v24.0.0中文永久版

CrossOver 24是一款可以让mac用户能够自由运行和游戏windows游戏软件的虚拟机类应用&#xff0c;虽然能够虚拟windows但是却并不是一款虚拟机&#xff0c;也不需要重启系统或者启动虚拟机&#xff0c;类似于一种能够让mac系统直接运行windows软件的插件。它以其出色的跨平台兼容…

NVMe开发——PCIe复位

简介 PCIe中有4种复位机制&#xff0c;早期的3种被称为传统复位(Conventional Reset)。传统复位中的前2种又称为基本复位(Fundamental Resets)&#xff0c;分别为冷复位(Cold Reset)&#xff0c;暖复位(Warm Reset)。第3种复位为热复位(Hot Reset)。第4种复位被称为功能级复位…

js 正则记录

正则表达式 正则表达式创建一个正则表达式修饰符常用的特殊字符使用正则表达式的方法replace指定字符串作为替换项使用场景&#xff1a;交换字符串中的两个单词将"-"链接的方式改为驼峰式(忽略开头的-)将华氏温度转换为响应的摄氏温度 常用正则示例判断输入是否是正确…

使用docker安装dolphinscheduler

1、前提是安装docker和docker-compose 2、#mkdir /data/dolphinscheduler 3、镜像 docker load -i dolphinscheduler-mysql-driver.tar docker pull zookeeper:3.6.2:3.6.2 docker tag a7 bitnami/zookeeper:3.6.2 理论上postgresql也可以在线pull&#xff0c;但是在线do…

179基于matlab的2D-VMD处理图像

基于matlab的2D-VMD处理图像&#xff0c;将图片进行VMD分解&#xff0c;得到K个子模态图&#xff0c;将每个模态图进行重构&#xff0c;得到近似的原图。可以利用这点进行图像去噪。程序已调通&#xff0c;可直接运行。 179 2D-VMD 图像分解重构 图像处理 (xiaohongshu.com)

每日五道java面试题之spring篇(九)

目录&#xff1a; 第一题. 说一下Spring的事务传播行为第二题. 说一下 spring 的事务隔离&#xff1f;第三题. Spring AOP and AspectJ AOP 有什么区别&#xff1f;AOP 有哪些实现方式&#xff1f;第四题. JDK动态代理和CGLIB动态代理的区别第五题. 解释一下Spring AOP里面的几…

Hyperf crontab 定时任务组件

composer require hyperf/crontab autoload里面配置process和crontab&#xff0c;这里主要是对crontab配置里的其他任务属性配置进行尝试。 onOneServer singleton onOneServer 和 singleton 在crontab源码中src/Strategy/Executor.php 中decorateRunnable是控制是否执行的。…

【白嫖8k买的机构vip教程】Appium自动化(3):Appium-Desktop界面介绍

Appium-Desktop主界面包含三个菜单Simple、Advanced、Presets Simple界面&#xff1a; Host设置Appium server的ip地址&#xff0c;本地调试可以将ip地址修改为127.0.0.1&#xff1b;Port设置端口号&#xff0c;默认是4723不用修改Start Server 启动 Appium serverEdit Confi…

重生奇迹MU玩家容易遇到的问题

1、玩家可以在画面左上角座标旁找到「奇迹助手」的小按钮&#xff0c;用它来开启介面。 2、打怪范围&#xff1a;自动寻找所设定范围内的怪物&#xff0c;勾选后角色搜索范围内若无可攻击的目标&#xff0c;将会随机移动位置直到有攻击目标为止&#xff0c;但移动范围不超出所…