>Allora, provo ad entrare nel particolare così da essere più esaustivo:
>
>Ho questa tabella:
>
>nome: User
>Colonne: Id, Name, InsertDate
>
>In input, a runtime, mi arriva una stringa (chiamata Identificativo):
>la MERGE mi serve perchè devo controllare se questo Id è già
>presente nella Tabella User o meno: se è presente faccio l'update
>della colonna InsertDate, altrimenti aggiungo una nuova riga;
>
>Esempio
>
>MERGE INTO User
>USING (SELECT * FROM User)
La tabella di origine e quella di destinazione ovviamente NON possono coincidere
Poi non avevo capito che la tabella di origine in realtà è una variabile scalare e non una tabella.
In questo caso prova a modificare il comando nel seguente modo:
MERGE INTO User
USING (SELECT Identificativo FROM DUAL)
ON (Identificativo = Id)
WHEN MATCHED THEN
UPDATE SET InsertDate = SYSDATE
WHEN NOT MATCHED THEN
INSERT (Id, Name, InsertDate)
VALUES (Identificativo, 'Pippo', SYSDATE");
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org