[英]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
表:
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 並返回 cursor:
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;
/
目的是能夠用虛擬查詢替換從客戶端代碼(在 C#,FWIW 中)使用的現有查詢字符串(其本身是從數據庫中檢索的)。
使用參數化查詢並傳入要使用該值的綁定變量。
在 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.