Mat*_*ttB 7 oracle variables plsql
我似乎无法在Oracle PL/SQL where子句中使用变量.我来自Microsoft SQL Server背景,很简单.例如,执行类似以下操作所需的所有步骤是什么?
declare @var int set @var = 1
select * from SomeTable where SomeField = @var
Run Code Online (Sandbox Code Playgroud)
这看起来似乎不应该在PL/SQL中很难,但显然它是.: - /我听说我需要在PL/SQL中使用游标等?
任何帮助将不胜感激.谢谢.
Ton*_*ews 11
你想对SELECT返回的数据做什么?如果您只是想看到它,根本不需要PL/SQL,只需在SQL Plus中执行此操作:
variable var number
exec :var := 1
select * from SomeTable where SomeField = :var;
Run Code Online (Sandbox Code Playgroud)
或者在像SQL Developer或Toad这样的工具中,只需执行以下操作:
select * from SomeTable where SomeField = :var;
Run Code Online (Sandbox Code Playgroud)
它会提示您输入以下值:var.
下面的代码声明了一个var在WHERE子句中使用的变量,一个result用于放置结果的变量然后在PL/SQL块中执行它.
DECLARE
var INT := 1;
result INT;
BEGIN
SELECT 123
INTO result
FROM DUAL
WHERE var = 1;
DBMS_OUTPUT.put_line (var);
DBMS_OUTPUT.put_line (result);
END;
Run Code Online (Sandbox Code Playgroud)
该DBMS_OUTPUT.PUT_LINE电话使之产生这个DBMS输出:
1
123
Run Code Online (Sandbox Code Playgroud)