Zitat von
Hawkeye:
Ausserdem würde ich gerne wissen warum "meine"
Query den Fehler produziert sobald das Datum ins Spiel kommt (hab ich oben gepostet).
- 1. "DATE" hat als DatenType Vorrang vor Variablen-/Spalten-/Tabellennamen -> boom.
Du solltest also deine Spalten Date & User sofort umbenennen!
Das sind reservierte Keywords, die dir anscheinend durch einen Bug in Ora7 nicht sofort um die Ohren gehauen wurden. (Darauf hatte ich vorhwer nicht geachtet.
- 2. Setze am Besten ein Leerzeichen zwischen "=" und ":Value", es ist möglich, dass die DB den Parameter nicht erkennt.
Zitat von
Hawkeye:
Geht das Ganze auch ohne den Primärkey ?
Auch wenn es irgendwie komisch ist, hier: (DBAs ohne PK kommen nicht in den Himmel
)
SQL-Code:
declare
lFoundRec
Integer;
begin
begin
SELECT 1
INTO lFoundRec
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
lFoundRec := 0;
end;
if lFoundRec = 0
then
INSERT INTO DeineTabelle
(Name
,WERT
,EditUser
,EditDate)
VALUES
(:i_Name
,:i_WERT
,:i_User
,:i_Date);
end if;
end;