Oracle Insert Befehl
Hallo,
ich habe eine Datenbank, die etwa so aussieht:
Jetzt soll mit einem Insert Befehl folgendes passieren:
Also habe ich angefangen, hier vermutlich falsch aber sinngemäß:
Vielen Dank für eure Hilfe.
Gruß
Marabunta
ich habe eine Datenbank, die etwa so aussieht:
PrimaryKey=ID
ID, STARTDATE, ENDDATE, ZA, TT, SP
Jetzt soll mit einem Insert Befehl folgendes passieren:
ID + 1
STARTDATE = JETZT
ENDDATE = JETZT + 1 MINUTE
Einen bestimmten Text in ZA eintragen = ('BLA')
TT UND SP = TT UND SP von MAX(ID) WHERE ZA = 'ALB'
Also habe ich angefangen, hier vermutlich falsch aber sinngemäß:
INSERT INTO TABELLE1 (
ID,
STARTDATE,
ENDDATE,
ZA,
TT,
SP
)
VALUES(
MAX(ID)+1,
'20.02.18 00:00:00,000000000',
'20.02.18 00:01:00,000000000',
'BLA',
SELECT TT FROM TABELLE1 WHERE ZA = 'ALB' AND ROWNUM = '1' ORDER BY ID DESC,
SELECT SP FROM TABELLE1 WHERE ZA = 'ALB' AND ROWNUM = '1' ORDER BY ID DESC
)
Vielen Dank für eure Hilfe.
Gruß
Marabunta
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 365376
Url: https://administrator.de/forum/oracle-insert-befehl-365376.html
Ausgedruckt am: 03.04.2025 um 04:04 Uhr
4 Kommentare
Neuester Kommentar
Moin,
bin kein Oracle Spezialist, trotzdem...
1.
Ist das eine Single User, single Thread Datenbank? Wenn nicht muss um das ganze eine Transaction 'rum, sonst klappt ID=MAX(ID)+1 nicht zu 100%
2.
VALUES(.... SELECT TT...) ist mE kein gültiger Syntax. Ich denke du brauchst das Oracle Äquivalent zu einer Stored Procedure in der du dann erst die Werte für TT und SP zusammenbastellst und dann als Variable in das INSERT INTO einfügst.
lg,
Slainte
bin kein Oracle Spezialist, trotzdem...
1.
Ist das eine Single User, single Thread Datenbank? Wenn nicht muss um das ganze eine Transaction 'rum, sonst klappt ID=MAX(ID)+1 nicht zu 100%
2.
VALUES(.... SELECT TT...) ist mE kein gültiger Syntax. Ich denke du brauchst das Oracle Äquivalent zu einer Stored Procedure in der du dann erst die Werte für TT und SP zusammenbastellst und dann als Variable in das INSERT INTO einfügst.
lg,
Slainte
DU bist echt anstrengend....
was ist denn überhaupt dein Problem wo hakt es denn??
Grundsätzlich fällt mir als erstes mal auf, dass die EIngaben in Zeile 15 sowie 16 des dritten Code-Tags in Klammern stehen müssen!
Als nächstes wäre es sinnvll, wenn du mit einem Subselect arbeiten würdest:
So oder so ähnlich jedenfalls.... habe gerade kein ORACLE zur Hand....
was ist denn überhaupt dein Problem wo hakt es denn??
Grundsätzlich fällt mir als erstes mal auf, dass die EIngaben in Zeile 15 sowie 16 des dritten Code-Tags in Klammern stehen müssen!
(SELECT TT FROM TABELLE1 WHERE ZA = 'ALB' AND ROWNUM = '1' ORDER BY ID DESC),
(SELECT SP FROM TABELLE1 WHERE ZA = 'ALB' AND ROWNUM = '1' ORDER BY ID DESC)
Als nächstes wäre es sinnvll, wenn du mit einem Subselect arbeiten würdest:
...
VALUES (
(select
ID_New
, (select TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') FROM DUAL) as "NOW"
, (select to_date(to_char(SYSDATE, 'YYYY-DD-MM ') || ' ' || TO_CHAR(Timeadd(SYSDATE, , 00, 00, 01), 'HH24:MM:SS)))
, 'BLA'
, TT
, SP
from
(select
MAX(ID) + 1 as ID_NEW
, TT
, SP
from TABELLE 1 Where ZA = 'ALB' and ROWNUM = '1' order by ID desc)))
So oder so ähnlich jedenfalls.... habe gerade kein ORACLE zur Hand....