在 Oracle sql 中声明一个变量并 select 它
declare a variable and select it in Oracle sql
在 SQL 服务器中,我可以执行以下操作来声明和 select 一个虚拟变量:
declare @dummy decimal;
set @dummy = 0;
select @dummy as dummy;
如何在 Oracle sql 中完成?以下不起作用:
declare dummy decimal := 0;
select dummy as dummy;
编辑:
目的是能够用虚拟查询替换从客户端代码(在 C# 中,FWIW 中)使用的现有查询字符串(它本身是从数据库中检索的)。
您可以按如下方式使用DEFINE
:
SQL> DEFINE DUMMY=5;
SQL> SELECT &DUMMY AS DUMMY FROM DUAL;
DUMMY
----------
5
SQL>
使用 DUAL
table:
SELECT 0 AS dummy FROM DUAL;
或者,在 SQL/Plus 客户端(以及一些其他客户端,例如 SQL Developer)中,创建一个绑定变量:
VARIABLE dummy NUMBER;
BEGIN :dummy := 0; END;
/
SELECT :dummy AS dummy FROM DUAL;
或者,从 Oracle 12c 开始,您可以使用 PL/SQL 和 return 游标:
DECLARE
rc SYS_REFCURSOR;
v_dummy NUMBER := 0;
BEGIN
OPEN rc FOR SELECT v_dummy AS dummy FROM DUAL;
DBMS_SQL.RETURN_RESULT(rc);
END;
/
The aim is to be able to replace an existing query string (which in itself is retrieved from a database), used from a client code (in C#, FWIW), with a dummy query.
使用参数化查询并在要使用该值的位置传入绑定变量。
在PL/SQL?
SQL> declare
2 l_dummy number := 0;
3 retval number;
4 begin
5 retval := l_dummy;
6
7 -- or:
8 select l_dummy into retval from dual;
9 end;
10 /
PL/SQL procedure successfully completed.
SQL>
在 SQL 服务器中,我可以执行以下操作来声明和 select 一个虚拟变量:
declare @dummy decimal;
set @dummy = 0;
select @dummy as dummy;
如何在 Oracle sql 中完成?以下不起作用:
declare dummy decimal := 0;
select dummy as dummy;
编辑:
目的是能够用虚拟查询替换从客户端代码(在 C# 中,FWIW 中)使用的现有查询字符串(它本身是从数据库中检索的)。
您可以按如下方式使用DEFINE
:
SQL> DEFINE DUMMY=5;
SQL> SELECT &DUMMY AS DUMMY FROM DUAL;
DUMMY
----------
5
SQL>
使用 DUAL
table:
SELECT 0 AS dummy FROM DUAL;
或者,在 SQL/Plus 客户端(以及一些其他客户端,例如 SQL Developer)中,创建一个绑定变量:
VARIABLE dummy NUMBER;
BEGIN :dummy := 0; END;
/
SELECT :dummy AS dummy FROM DUAL;
或者,从 Oracle 12c 开始,您可以使用 PL/SQL 和 return 游标:
DECLARE
rc SYS_REFCURSOR;
v_dummy NUMBER := 0;
BEGIN
OPEN rc FOR SELECT v_dummy AS dummy FROM DUAL;
DBMS_SQL.RETURN_RESULT(rc);
END;
/
The aim is to be able to replace an existing query string (which in itself is retrieved from a database), used from a client code (in C#, FWIW), with a dummy query.
使用参数化查询并在要使用该值的位置传入绑定变量。
在PL/SQL?
SQL> declare
2 l_dummy number := 0;
3 retval number;
4 begin
5 retval := l_dummy;
6
7 -- or:
8 select l_dummy into retval from dual;
9 end;
10 /
PL/SQL procedure successfully completed.
SQL>