如何在Oracle PL-SQL(或SQL plus)的某些select语句中使用变量
我有几个select语句,它们都需要使用相同的变量。那么我可以先定义一个变量,然后在下面的语句中直接使用它,如下所示:如何在Oracle PL-SQL(或SQL plus)的某些select语句中使用变量,oracle,select,plsql,sqlplus,Oracle,Select,Plsql,Sqlplus,我有几个select语句,它们都需要使用相同的变量。那么我可以先定义一个变量,然后在下面的语句中直接使用它,如下所示: declare variable; -- a to_date function select statement 1; select statement 2; select statement 3; ... 所以当条件改变时,我可以修改变量。我如何在oracle中使用pl sql(或sql plus)实现它?您需要简单的sql*plus变量 variable my_date
declare variable; -- a to_date function
select statement 1;
select statement 2;
select statement 3;
...
所以当条件改变时,我可以修改变量。我如何在oracle中使用pl sql(或sql plus)实现它?您需要简单的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(因为我们使用了两个&
),其值将在该会话的所有select语句中使用
干杯 你怎样才能做到什么?你所描述的是正确的过程。您是否在询问如何在运行查询之前为变量赋值?你展示了如何声明变量,而不是如何给它赋值——这就是你要问的吗?对不起,我没有很清楚地表达这个问题。我的问题是先声明变量,然后分配变量,最后使用。是的,在sql plus中是可以的。在pl sql中执行时,它会提示“ORA-00900”和“ORA-01008”错误。pl-sql中有一个例子吗?请尝试第二个例子,即使用two&您可以将整个代码发布到错误的地方吗。您是否也在某个进程/函数中使用它?我完全遵循示例二,但每个sql语句都会提示相同的错误“ORA-01008”。请添加实际代码、您正在执行的工具以及问题中的实际错误消息