我想知道在DBeaver的SQL编辑器中是否可以声明变量并在查询中使用它们。
参数
块中有一些您可以更改的设置。请参见维基上的动态参数绑定部分。
然后您就能够进行以下操作:
@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
:foo
$foo
和 ${foo}
。 - Adam Hopkins@set
来定义变量,无论是哪种语法。DBeaver 将填充在首选项中定义的任何占位符。 - Álvaro González@set
!在 DBeaver 版本 22.3.0.202212041619 中,使用 @SET
无法正常工作。 - Peter A-- define variable
@set my_var='hello SQL world'
-- call variable
select :my_var
您还可以使用${my_var}
来引用变量;但$my_var
对我无效。我正在使用DBeaver v. 21.1。
根据@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}
;
@set i_date = (date '2000-01-01')
(这使得复制粘贴存储过程查询变得相对简单,只需在输入参数前加上:
,如select :i_date as col1 from dual
)。 - Pasi SavolainenBEGIN
DECLARE @name VARCHAR(10);
SET @name = 'My Name';
SELECT @name AS NAME;
END;
@set
是 DBeaver 命令。如果您附加了;
,它将成为变量值的一部分! - Álvaro González