Oracle SQLPLUS:如果变量为,则设置多个值!=废话
所以,这是我有生以来第一次在这里找不到我的答案,我不得不提出我自己的问题 这是我的剧本:Oracle SQLPLUS:如果变量为,则设置多个值!=废话,oracle,sql-update,sqlplus,case-statement,Oracle,Sql Update,Sqlplus,Case Statement,所以,这是我有生以来第一次在这里找不到我的答案,我不得不提出我自己的问题 这是我的剧本: UPDATE EC_PLAN_OFFERED SET AUTHOR_ID = 'ATTESTATION_FIX', -- MIN_ESSENTIAL_COV_IN = '&&7', -- MIN_VALUE_PLAN_IN = '&&8', DEPENDENT_COV_AVAL_IN = '&&3',
UPDATE EC_PLAN_OFFERED
SET AUTHOR_ID = 'ATTESTATION_FIX',
-- MIN_ESSENTIAL_COV_IN = '&&7',
-- MIN_VALUE_PLAN_IN = '&&8',
DEPENDENT_COV_AVAL_IN = '&&3',
SPOUSE_COVERAGE_AVL_IN = '&&4',
SELF_INSURED_IN = '&&5'
WHERE EMPLOYEE_ONLY_CVG_LVL_IN = 'Y'
-- AND MEDICAL_PLAN_ID = '&&6'
AND (WAIVED_COVERAGE_IN = 'N' OR WAIVED_COVERAGE_IN IS NULL)
AND AUTHOR_ID <> 'IMPORT_NON_EMPLOYEE'
AND OFFER_ID IN (
SELECT OFFER_ID
FROM EC_COVERAGE_OFFER
WHERE NVL(COVERAGE_START_DT, EVENT_DT) < TO_DATE('01/01/2016','MM/DD/YYYY')
);
希望它能在我需要的时候放线,但这并没有达到预期的效果
请注意,这是SQLPLUS,通过“.bat”调用
除了使用另一种语言,还有什么建议吗?
谢谢 如果我正确理解您的需求,您可以尝试以下方式:
MIN_ESSENTIAL_COV_IN = decode('&&7','-',MIN_ESSENTIAL_COV_IN, '&&7' )
这表示始终以这种方式更新列的值:
if &&7 = '-'
update MIN_ESSENTIAL_COV_IN with its value ( so, do not update)
else
update MIN_ESSENTIAL_COV_IN to &&7
谢谢你的回复。我实现了这一点,但现在得到:“第3行错误:ORA-00933:SQL命令未正确结束”它实际上可以工作!这是一个很棒的函数,我从来没有在任何地方见过,哈哈。我必须在调用结束时添加一个“,”。非常感谢。伟大的完成!我也在玩弄这个:医疗计划,比如解码(“&&6',“*”,“%,”&&6')-应该可以工作。。。
if &&7 = '-'
update MIN_ESSENTIAL_COV_IN with its value ( so, do not update)
else
update MIN_ESSENTIAL_COV_IN to &&7