Ich fürchte, ich kann dir beim ersten nicht wirklich helfen. Da Ora7 so alt ist, dass ich es nur von Weitem zu meiner Schulzeit zu Gesicht bekam. (Diese Bugs sind mir in neueren Versionen nch nicht untergekommen)
Zitat:
Als Tabellenformat hatte ich zuerst ftCurr...
Klingt für mich nach einem Delphi-Typ, welchen Typen hat deine Spalte in Ora?
Zitat:
Meine Frage konkret: Wie müssten die Queries aussehen die einmal einen solchen Datensatz einfügen und
zum 2. eine
Query die Feststellt ob der am selben Tag schon mal ein Datensatz mit gleichem Inhalt eingefügt wurde.
Da kann ich dir helfen
Benötigt werden 100g Mehl, 4 Input- & 1 Output -Parameter (für den prim. Schlüssel)
SQL-Code:
begin
begin
SELECT DeinPrimKey
INTO :o_FoundPK
FROM DeineTable
-- Diese Kombi von Werte darf nur einen DS finden
-- Ansonsten wirst du einen ORA-01422 (too_many_rows) ernten ;)
WHERE Name = :i_Name
and
WERT = :i_WERT
and
EditUser = :i_User
and
EditDate = :i_Date;
Exception
When NO_Data_Found
then
-- Wird nichts gefunden -> INSERT
:o_FoundPK := 0;
end;
if :o_FoundPK = 0
then
INSERT INTO DeineTabelle
(Name
,WERT
,EditUser
,EditDate)
VALUES
(:i_Name
,:i_WERT
,:i_User
,:i_Date)
-- Dein Programm wird den neuen PK brauchen ;)
RETURNING DeinPrimKey
INTO :o_PK;
end if;
end;
Das ganze ist im Prinzip ein etwas hässliches Work around für den Befehl MERGE aus Ora9.