0
シリアル番号を作成するためにcreate record triggerでoracleで次のコードを使用しています。私はLM0001
のようなシリアルナンバーが欲しい。 LM000 STRING WITH NUMBERを使用して、シリアル番号を生成するために両方を連結します。エラーora-06502
が表示されます。私が間違っているところで助けが必要です。ここで、私は、コードを変更する必要がありますoracleで文字列を使用してシリアル番号を作成
DECLARE
VCAN varchar2(40);
L number (10);
BEGIN
SELECT MAX(SL_NO)INTO VCAN FROM LAND_MANAGEMENT;
IF VCAN > 0 THEN
L := VCAN + 1;
:LAND_MANAGEMENT.SL_NO := 'LM000' || L;
ELSE
:LAND_MANAGEMENT.SL_NO := 'LM000' || 1;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
:LAND_MANAGEMENT.SL_NO := 'LM000'|| 1;
END;
を使用して問題を解決しましたそれにはLMが含まれています。追加する前にLMを削除する必要があります。1. dbms_outputを使用して変数の内容を確認し、デバッグします。そして、4つの固定されたゼロを持つことは、あなたが#1のためにしたいと言っているパターンと一致しません。 Lが10、または100のときはどうなりますか?とにかく、なぜあなたはシーケンスを使用していないのですか? –
LMを保存しないでください。番号の値を保存し、希望の文字を表示にのみ連結してください。 –