![](/img/trans.png)
[英]Conditional Date Comparison and Assignment using Case expression in Oracle SQL
[英]Oracle SQL Plus variable value assignment using CASE
我想將 V_PROFILE 變量設置為由 Oracle SQL Plus 中的 V_USERID 變量的值確定的值。 數據庫版本 12.1.0.2
下面的代碼返回正確的答案,但我需要設置一個變量而不是返回文字答案。
def V_PROFILE=''
def V_USERID='USER_KCH'
select
CASE substr('&V_USERID',1,1)
WHEN 'U' THEN
'USER_PROFILE'
WHEN 'S' THEN
'SERVICE_PROFILE'
ELSE 'NO PROFILE'
END
from dual;
假設您在 SQLPLus 中執行此操作,我相信您可以執行以下操作:
COLUMN column_name NEW_VALUE variable_name
在您的情況下,您需要為查詢中的選定列添加別名,然后執行
COLUMN alias NEW_VALUE v_profile
(希望我能正確記住語法。)
Oracle SQL 加變量賦值使用CASE
下面的代碼將 V_PROFILE 變量設置為由 Oracle SQL Plus 中的 V_USERID 變量的值確定的值。 數據庫版本12.1.0.2以下代碼集
def V_PROFILE=''
def V_USERID='USER_KCH'
def V_USERID='SERVICE_KCH'
def V_USERID='OTHERVALUE'
COLUMN PROFILE NEW_VALUE V_PROFILE NOPRINT
select
CASE substr('&V_USERID',1,4)
WHEN 'USER' THEN
'USER_ACCOUNTS_PROF'
WHEN 'SERV' THEN
'SERVICE_ACCOUNTS_PROF'
ELSE 'DEFAULT'
END as profile
from dual;
DEFINE V_PROFILE = "USER_ACCOUNTS_PROF" (CHAR)
DEFINE V_PROFILE = "SERVICE_ACCOUNTS_PROF" (CHAR)
DEFINE V_PROFILE = "DEFAULT" (CHAR)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.