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

use*_*062 2 oracle sqlplus

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

例子:

SELECT orders.order_no FROM orders WHERE orders.order_date BETWEEN :v1 AND :v2
Run Code Online (Sandbox Code Playgroud)

如何设置的日期:v1:v2

mat*_*guy 5

请注意以下几点:

  • VARIABLE 是一个 SQLPlus 命令。不以分号 (;) 结尾。

  • 在 VARIABLE 命令中,不要在变量名之前使用冒号 (:)。

  • 绑定变量不能是“日期”数据类型——它们是某种字符值。

  • 因此,在您的代码中,您必须使用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
Run Code Online (Sandbox Code Playgroud)