テーブルを更新するストアドプロシージャを作成しました。 しかし、私は1つ以上のパラメータがNULLであるところを考慮したいと思います。 このような場合、私は列を更新したくないので、既存の値をそのまま残したいと思います。PL SQL - パラメータがNULLでない場合のストアドプロシージャ更新列
私が使用することを試みた:
UPDATE
VS_USER_T
SET
USR_FIRST_NAME = ISNULL(p_NewUsrFName, @p_NewUsrFName)
WHERE
USR_ID = lv_Num_UsrId;
しかし、私は '@' のエラーを取得し、私は、Oracle 12cとを使用しています。
は、これは「p_NewUsrnameは」私のように既存の値のままにしたい場合には、NULLにすることができたときに私のUPDATEステートメントは、ように見えるべきか教えてくださいプロシージャコール
PROCEDURE UpdateUser
(p_UserId IN VS_USER_T.USR_ID%TYPE,
p_NewUsrFName IN VS_USER_T.USR_FIRST_NAME%TYPE,
p_NewUsrLName IN VS_USER_T.USR_LAST_NAME%TYPE,
p_NewUsrname IN VS_USER_T.USR_LOGIN%TYPE)
です。
ありがとうございます。
あなたのコードは、あなたのSPの外観がよりよく理解できるように更新してください。 –
パラメータをオプションとして設定していますか? –
Oracleのマニュアルでは、変数に接頭辞 '@ 'を付ける構文を見つけましたか? –