【问题标题】:How to use variable in some select statement with Oracle PL-SQL( or sql-plus)如何在 Oracle PL-SQL(或 sql-plus)的某些选择语句中使用变量
【发布时间】:2020-02-03 11:40:39
【问题描述】:

我有几个选择语句,它们都需要使用相同的变量。那我能不能先定义一个变量,然后在下面的语句中直接使用,像这样:

declare variable;  -- a to_date function
select statement 1;
select statement 2;
select statement 3;
...

所以当条件改变时,我可以修改变量。如何在 oracle 中使用 pl-sql(或 sql-plus) 来完成它?

【问题讨论】:

  • 你怎么能完成什么?你描述的是正确的过程。您是否在询问如何在运行查询之前为变量赋值?您展示了如何声明变量,但没有展示如何为其赋值 - 这就是您要问的吗?
  • 对不起,我没有把问题表达得很清楚。我的问题是先声明变量,然后赋值变量,最后使用。

标签: oracle select plsql sqlplus


【解决方案1】:

你需要简单的 sql*plus 变量。

variable my_date varchar2(30)

exec :my_date := '01-oct-2019';

select * from t where date_col = to_date(:my_date,'dd-mon-yyyy');

-- other select statements

您也可以使用替换变量来实现这一点。

select * from t1 where date_col = to_date(&&my_date,'dd-mon-yyyy');

select * from t2 where date_col = to_date(&&my_date,'dd-mon-yyyy');

-- other select statements using &&my_date

在这里,oracle 将提示一次my_date(因为我们使用了两个&),其值将用于该会话的所有选择语句。

干杯!!

【讨论】:

  • 是的,在sql-plus中是可以的。在pl-sql中执行时,提示“ORA-00900”和“ORA-01008”错误。 pl-sql中有例子吗?
  • 试试第二个使用两个 & 的例子
  • 能否请您在出现错误的地方发布整个代码。而且你也在一些proc/function中使用它吗?
  • 我完全按照例子二,但是每条sql语句都提示同样的错误“ORA-01008”。
  • 请在问题中添加实际代码、正在执行的工具以及实际错误消息
猜你喜欢
  • 1970-01-01
  • 2016-08-28
  • 2017-03-29
  • 1970-01-01
  • 2018-06-27
  • 2016-07-19
  • 1970-01-01
  • 2011-10-15
  • 2022-01-13
相关资源
最近更新 更多