使用SQLPlus时如何设置Oracle绑定变量?

时间:2016-10-12 08:02:37

标签: oracle sqlplus

如何在使用SQLPlus时设置Oracle绑定变量?

示例:

SELECT orders.order_no FROM orders WHERE orders.order_date BETWEEN :v1 AND :v2

如何设置:v1:v2的日期?

2 个答案:

答案 0 :(得分:3)

请注意以下事项:

  • VARIABLE是一个SQLPlus命令。你不能用分号(;)来结束它。

  • 在VARIABLE命令中,不要在变量名前面加上 冒号(:)。

  • 绑定变量不能是数据类型" date" - 他们是某种形式的 字符值。

  • 因此,在您的代码中,您必须使用to_date() 适当的格式模型或其他一些机制,将字符串转换为 日期。您的代码中目前缺少这一点。千万不要将日期与之比较 串!

以下简要演示。

SQL> variable v1 varchar2(20)

SQL> exec :v1 := '2015/12/22';
PL/SQL procedure successfully completed.

SQL> select 1 as result from dual where to_date(:v1, 'yyyy/mm/dd') < sysdate;

    RESULT
----------
         1

答案 1 :(得分:0)

共同点 您可以使用定义并使用&amp;

define x = 12 ;
select &x from dual;

varable

variable x refcursor;
begin
 open :x for select * from dual connect by level < 11;
end;
/
print x