IDNumber
この出力例に SQLを追加する方法:
1300000001,1300000002,1300000003,13......
最初の 2 桁は現在の年の最後の 2 桁である必要があり、最後の 8 桁は次のidnumber
ような自動番号または連番である必要があります。00000001,00000002,00000003,00000004..
学生テーブルの主キーとして機能するため..
ヘルプのためのtnx..
IDNumber
この出力例に SQLを追加する方法:
1300000001,1300000002,1300000003,13......
最初の 2 桁は現在の年の最後の 2 桁である必要があり、最後の 8 桁は次のidnumber
ような自動番号または連番である必要があります。00000001,00000002,00000003,00000004..
学生テーブルの主キーとして機能するため..
ヘルプのためのtnx..
これがIdを生成する私の方法です。
CREATE OR REPLACE TRIGGER GEN_ID BEFORE INSERT ON DEMO FOR EACH ROW
DECLARE
TEMP_ID VARCHAR(10);
HIGHEST_NUM NUMBER;
N NUMBER;
NUM_OF_DIGITS NUMBER;
BEGIN
SELECT NVL(MAX(EMPNO),0)+1 INTO HIGHEST_NUM FROM DEMO;
N:=HIGHEST_NUM;
NUM_OF_DIGITS :=0;
WHILE N!=0
LOOP
NUM_OF_DIGITS := NUM_OF_DIGITS + 1;
N := TRUNC(N/10);
END LOOP;
TEMP_ID :='P';
FOR I IN 1..(5-NUM_OF_DIGITS-1)
LOOP
TEMP_ID:=TEMP_ID||0;
END LOOP;
TEMP_ID := TEMP_ID||HIGHEST_NUM;
:NEW.EMPNO := TEMP_ID;
END;
/
このロジックを使用してください。私はキャラクターを持っているので、連結を使用しています。これは一方向かもしれません。私はこれをOracleで疲れさせましたが、C#についてはよくわかりません。
これが論理です。
ID
現在価値が前の権利に依存するシーケンスを生成する必要がありますか?それで、
最初のステップは、最後に使用されたID値を取得することです。これは、MAX(column)を使用して使用できます。次に、必要なシリアルである最大数に1を追加します。これは、1,2,3....などになります。
ステップ2:番号を取得した後、番号に存在する桁数をカウントします
ステップ3:10桁の数字を生成する必要があり、最初の2桁は年に基づいて12/13/14になります。したがって、今年の下2桁を取得する必要があります。
ステップ4: 10-2 [年の2桁として]-シーケンスの最大値の桁数を追加し、idとして保存します。
手順5:最大値をidと連結します。