如何在Squirrel SQL客户端3中定义/声明和使用变量

5

我使用的软件是SQuirreL SQL Client Version 3.2.1,我想声明变量,例如:

define dateFrom = '13/04/2012';
define dateTo = '13/04/2012'

并在我的SQL查询中使用它,就像这样
SELECT * FROM table_name WHERE TRUNC(column_name) BETWEEN to_date('&dateFrom','YYYY-MM-DD') AND to_date('&dateTo','YYYY-MM-DD');

但是它不起作用。 如何在SQuirreL中定义和使用变量。


SQuirreL是一个客户端,而不是实际的RDBMS。你在调用哪个RDBMS?也就是说,这个变量将在你从SQuirreL发送到RDBMS的SQL中声明。 - gbn
我正在调用一个 Oracle 数据库。 - BasicCoder
1
你收到了什么错误信息?格式掩码为“YYYY-MM-DD”,而你的常量值格式化为“DD/MM/YYYY”。你是否尝试在查询中使用该格式? - Joseph B
3个回答

1
也许并不完全符合您的要求,但您是否尝试加载插件'sqlparam'?它提供变量替换功能,例如:
SELECT * FROM table_name WHERE TRUNC(column_name) BETWEEN :dateFrom and :dataTo

运行此查询时,Squirrel 将要求输入值。

错误:ORA-01008:未绑定所有变量 - BasicCoder

0

我知道这个问题很老了,但它帮助我找到了一个解决方案,所以我想分享一下。在运行SquirrelSQL 3.8.1时,针对Oracle数据库可以使用此方法。

SELECT * FROM table_name WHERE TRUNC(column_name) BETWEEN to_date( :dateFrom ,'YYYY-MM-DD') AND to_date( :dateTo,'YYYY-MM-DD');

注意:函数调用和绑定变量冒号之间的空格是必需的——如果没有它,您将会得到一个错误。

-1

"SQuirreL(就像Oracle的SQL-Plus)需要知道您何时完成了匿名过程。通常这可以通过在过程末尾添加一行带有单个斜杠 (/) 字符的语句来完成。例如:"

DECLARE
v1  NUMBER(3);

BEGIN
  v1 := 3;
  select 1 from dual
END;
/

请看这里:http://sourceforge.net/p/squirrel-sql/mailman/message/28580491/ 现在当您选择带有斜杠的SQL时,只需使用Ctrl+Enter即可运行它。

该select语句需要添加into部分,并且末尾缺少分号。但是以当前形式它将不会返回任何值。 - Marcell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接