Oracle DB Wert in Spalte automatisch erhöhen

badfsaadkl
Goto Top
Hallo Zusammen,

ich möchte per VBS Schript Werte in einer Oracle 10g Datenbank in eine Tabelle importieren.

Ich habe nun das Problem, das in der Tabelle eine Spalte (ID) angegeben ist, welche sich automatisch bei einen neuem Datensatz um eins erhöhen soll.

Bis jetzt war die DB auf einem MS SQL Server, hier gab es diese funktion integriert.

Wie kann ich dies bei einer Oracle DB einstellen ?
Zum Editieren benutze ich den Oracle SQL Developer.

Habe bereits im I-Net gelesen, das das hier über Sequences und Trigger möglich sein soll.
Nur finde ich da leider keine detailierte Beschreibung.

Oder gibt es auch noch andere Möglichkeiten ?

Content-Key: 149681

Url: https://administrator.de/contentid/149681

Ausgedruckt am: 22.05.2022 um 03:05 Uhr

Mitglied: 32067
32067 25.08.2010 um 11:10:47 Uhr
Goto Top
Nein, ein Autoin oder ähnliches gibt es bei Oracle nicht.

Erstelle eine Sequence und lass dir von der dann die Werte rausgeben. Diese stellt sicher, daß die Werte nur einmal

Kurze und knackige Anleitung mit Beispiel hier: http://www.techonthenet.com/oracle/sequences.php
Mitglied: db-wizard
db-wizard 25.08.2010 um 12:58:10 Uhr
Goto Top
Konkret, wenn du es über einen Trigger lösen möchtest :

CREATE OR REPLACE TRIGGER trig_get_pk
BEFORE
INSERT
ON MyTable
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
SELECT My_SEQ.NEXTVAL
INTO :NEW.my_PrimaryKey
FROM DUAL;
END trig_get_pk;
/

Dazu musst du noch die Sequence einrichten :

CREATE SEQUENCE my_SEQ
INCREMENT BY 1
START WITH 1
MINVALUE 1
MAXVALUE 999999999999999999999999999
NOCYCLE
NOORDER
CACHE 1000
/


Gruss