我只是想知道是否可以在 DBeaver 的 sql 编辑器上声明变量并在查询中使用它们
您必须在 DBeaver -> 窗口 -> 首选项 -> 数据库 -> 编辑器 -> SQL 编辑器 -> SQL 处理的“SQL 处理”设置中启用变量处理。
Parameters
上有一个块,其中包含您可以更改的设置。请参阅 wiki 上的动态参数绑定部分。
然后你应该能够做到:
@set date = '2019-10-09'
SELECT ${date}::DATE, ${date}::TIMESTAMP WITHOUT TIME ZONE
产生:
| date | timestamp |
|------------|---------------------|
| 2019-10-09 | 2019-10-09 00:00:00 |
是的,可以,使用
:
。
一个例子:
SELECT * FROM "SYSIBM".SYSDUMMY1
WHERE IBMREQD = :YOUR_VARIABLE
基于@nicoschl 的非常有用的帖子,这里有一些小的改进:
-- using declarations
@set datex_start = cast('2120-01-01' as date) as date_start;
-- datex_start is the var name
-- casting the value in the declaration saves us the work later
-- the var can be given a default fieldname (e.g. "date_start")
-- run as a standalone command since the subsequent SELECT statement doesn't return values when it's all run together
select
${datex_start}
;
这将返回值“2120-01-01”,字段名称为“date_start”。
在 DBeaver SQL 编辑器中,您可以键入以下内容:
-- define variable
@set my_var='hello SQL world'
-- call variable
select :my_var
您还可以使用
${my_var}
来引用变量; $my_var
但是对我不起作用。我正在使用 DBeaver v. 21.1.
使用开始和结束。它对我有用。示例:
BEGIN
DECLARE @name VARCHAR(10);
SET @name = 'My Name';
SELECT @name AS NAME;
END;