What is the simplest way to define a local variable in Oracle?(在 Oracle 中定义局部变量的最简单方法是什么?)
问题描述
在 SQL Server 中,我可以像这样定义局部变量.
In the SQL Server, I can define local variables like this.
declare @id number := 1000
select * from tbl_A where id = @id;
select * from tbl_B where id = @id;
非常方便.我试图在 PL/SQL
中做同样的事情,但它不起作用.
It is very convenient.
I tried to do same thing in PL/SQL
but it doesn't work.
DECLARE id number;
select 1000 into id from dual;
你知道如何做类似的事情吗?最简单的方法是我的目标.
Do you know how to do something similar? The simplest method is my objective.
推荐答案
PL/SQL中如果要定义局部变量,需要一个完整的PL/SQL块
If you want to define a local variable in PL/SQL, you need a complete PL/SQL block
DECLARE
id NUMBER;
BEGIN
SELECT 1000
INTO id
FROM dual;
END;
或者只是
DECLARE
id NUMBER := 1000;
BEGIN
<<do something that uses the local variable>>
END;
如果你想在 SQL*Plus 中声明一个变量
If you want to declare a variable in SQL*Plus
SQL> variable id number
SQL> begin
select 1000 into :id from dual;
end;
/
SQL> print id
ID
----------
1000
SQL> SELECT * FROM tbl_a WHERE id = :id
这篇关于在 Oracle 中定义局部变量的最简单方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Oracle 中定义局部变量的最简单方法是什么?


基础教程推荐
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01