通过dbVisualizer使用Oracle数据库(目前为18g),我使用了具有参数的SQL。其中一些参数位于多个位置。我现在使用的查询有13个不同的参数名,代码中有56个引用。我有一些用于测试的标准值。我不想使用dbVisualizer呈现的接口手动输入它们。我想使用一个文本编辑器输入我的测试值,并将它们全部放在代码的开头,这样我就不会冒险对我的SQL逻辑大惊小怪,这样我就可以在测试结束时删除或注释掉该部分。
我在Server上已经做了几十年了..。
declare @varname varchar(50)
set @varname = 'asdf'
select @varname...but我看不出在甲骨文中有什么方法可以做到这一点。我已经读过许多关于如何使用PL/SQL或SQL*Plus (如https://dba.stackexchange.com/questions/3652/how-do-i-declare-and-use-variables-in-oracle)来实现这一点的文章,这些文章对我的环境不起作用。我也看到过一些被接受的答案不起作用的帖子(比如声明Oracle SQL中要在查询中使用的变量)。
如何像使用SSMS在Server中一样轻松地通过dbVisualizer声明Oracle中的变量?
发布于 2022-01-28 18:52:24
我已经需要这个功能大约3年了。由于我终于找到了足够的信息来解决这个问题,而且我从来没有在StackExchange上找到过这个信息,所以我在询问和回答我自己的问题,希望别人不会像我一样遭受不必要的痛苦。
我找到了一个描述如何做到这一点的帖子(https://support.dbvis.com/support/discussions/topics/1000076719),但它看起来像是在论坛升级中丢失了一些帖子。我发现这会奏效的:
@echo ${ MY_VARCHAR1 ||My Value|| String }$
@echo ${ MY_VARCHAR2 || My Other Value || String }$
@echo ${ MY_INTEGER || 13467 || Integer }$
@echo ${ MY_DATE || 1983-08-25 || Date }$
;
SELECT ${MY_VARCHAR1}$ "VarcharVal"
, REPLACE(${MY_VARCHAR2}$, ' ', '[SPACE]') "VarcharValWithLeadingAndTrailingSpaces"
, ${MY_INTEGER}$ "IntegerVal"
, ${MY_DATE}$ "DateVal"
FROM DUAL
;注意MY_VARCHAR2的结果。当整数和日期被清晰地处理时,您希望确保字符串数据的值周围没有空格。
更新:每个dbVisualizer文档调整代码。不过,结果也一样。
https://stackoverflow.com/questions/70898828
复制相似问题