lightdb 的 ltsql 客户端 支持使用 set define on 开启/关闭 替换变量

lightdb 的 ltsql 客户端 支持使用 set define on/off 开启/关闭 替换变量

背景

在业务产品中,存在 oracle 移植过来的 sql 语句。先使用变量替换,然后执行替换后的 sql 语句。lightdb 23.4 版本的 ltsql 客户端对此进行了支持。

lightdb 关于替换变量

lightdb23.4 版本以后 ltsql 客户端 oracle 模式下开始支持替换变量。set define on 开启替代变量功能,& 表示替代变量。set define off 关闭替代变量功能,& 表示普通字符。目前只支持对select语句中出现的变量进行替换。替换变量功能默认是开启的。

注意事项

  1. 只在oracle模式下支持。
  2. 变量名可以由数字,英文字母,下划线混合组成。
  3. 您可以使用&标记变量,&&标记变量不支持。遇到连续3个以上&标记变量取最后一个。
  4. 支持select开头的sql语句。
  5. 支持除第一个单词select以外的任意位置的变量替换(prepare stmt as SELECT * FROM t1 WHERE id = ‘&id’; 此时&id不生效)。
  6. 输入字符串不超过240个字符。
使用示例
  1. 创建表
CREATE TABLE rolelevel(
	id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    age INT NOT NULL,
    gender CHAR(1) NOT NULL,
    email VARCHAR(255) NOT NULL UNIQUE
);

INSERT INTO rolelevel(name, age, gender, email) 
VALUES ('zhangsan', 25, 'M', 'zhangsan@example.com');
INSERT INTO rolelevel(name, age, gender, email) 
VALUES ('lisi', 30, 'M', 'lisi@example.com');
INSERT INTO rolelevel(name, age, gender, email) 
VALUES ('wangwu', 22, 'F', 'wangwu@example.com');
INSERT INTO rolelevel(name, age, gender, email) 
VALUES ('zhaoliu', 28, 'M', 'zhaoliu@example.com');
INSERT INTO rolelevel(name, age, gender, email) 
VALUES ('xiaoqi', 18, 'M', 'xiaoqi@example.com');
  1. 输入带有&变量的 sql 语句
SELECT &a
FROM &a;
  1. 输入替换变量查看结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值