あなたは、以前のSQL文によって影響を受けた行数を見つけるためにSQL%ROWCOUNT
を使用したい:
PROCEDURE DELETE_STORE_INFO
(
P_STORE_CODE IN NVARCHAR2
)
AS
BEGIN
UPDATE TBL_RRSOC_STORE_INFO
SET ISACTIVE = 'N'
WHERE STORE_CODE = P_STORE_CODE;
IF SQL%ROWCOUNT = 0 THEN
-- DBMS_OUTPUT.PUT_LINE('Store code does not exist.');
RAISE_APPLICATION_ERROR(-20000, 'Store code does not exist.');
END IF;
END DELETE_STORE_INFO;
/
あなたはSQLコンソールに出力するDBMS_OUTPUT.PUT_LINE(string)
を使用することができます( PHPやJavaのような外部言語から呼び出す場合、出力は表示されず、SET SERVEROUTPUT OFF
の場合はコンソールに表示されないことがあります)。
無効なものが発生した場合は、RAISE_APPLICATION_ERROR(error_code, error_message)
を使用して例外を発生させることもできます。
代わりにあなたがOUT
パラメータにステータスを返すことができます:
PROCEDURE DELETE_STORE_INFO
(
P_STORE_CODE IN NVARCHAR2,
O_STATUS OUT NUMBER
)
AS
BEGIN
UPDATE TBL_RRSOC_STORE_INFO
SET ISACTIVE = 'N'
WHERE STORE_CODE = P_STORE_CODE;
IF SQL%ROWCOUNT = 0 THEN
o_status := 0;
ELSE
o_status := 1;
END IF;
END DELETE_STORE_INFO;
/
出典
2017-11-08 09:36:05
MT0
ですから、渡された入力文字列が有効であるかどうかをチェックするためのロジックを構築します。あなたが期待しているフォーマットを知っていれば、削除ステートメント – XING
@XINGでそれを使用する前にチェックを行うことができます:はい、どのフォーマットについて話していますか?列のデータ型? – BNN
あなたの入力を 'NVARCHAR2'として渡しているので、あなたのコードにいくつかの特別なダブルバイト文字があることを示します。したがって、カラムは' NVARCHAR2'でなければなりません。あなたが有効であるかどうかを確認する入力文字列と照合したいあなたの 'STORE_CD'のフォーマット/パターンについて話しています – XING