with function 语法支持

通过with子句,我们可以把很多原本需要存储过程来实现的复杂逻辑用一句SQL来进行表达。KingbaseES 从V008R006C004B0021 版本开始,支持 with function 语法。例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
with
  function f_sum(i_relnamespace oid,i_relname text) return text
  is
    v_name text;
  begin
    select i_relnamespace::regnamespace||'.'||i_relname into v_name ;
    return v_name;
  end;
select f_sum(relnamespace,relname) from pg_class limit 10;
 
f_sum
-------------------------------
pg_toast.pg_toast_16384
pg_toast.pg_toast_16384_index
public.t
pg_catalog.pg_statistic
pg_catalog.pg_type
pg_toast.pg_toast_2600
pg_toast.pg_toast_2600_index
pg_toast.pg_toast_2604
pg_toast.pg_toast_2604_index
pg_toast.pg_toast_3456
(10 rows)

 

with function 可以支持DML 操作:

1
2
3
4
5
6
7
8
with
  function f_sum(i_id integer,i_name text) return text
  is
  begin
    insert into t1 values(i_id,i_name);
    return i_name;
  end;
select f_sum(oid,relname) from pg_class limit 10;

  

posted @   KINGBASE研究院  阅读(137)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示