Merci pour votre aide précieuse.

j'ai trouvé ce code sur le forum et j'aimerais l'adapter au language sql oracle mais je n'y arrive pas. Des problèmes de Returns, d'@ etc...

Voici l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Erreur(2,31): PLS-00103: Symbole "@" rencontré à la place d'un des symboles suivants :     <identificateur> <identificateur entre guillemets> current    delete exists prior
Merci pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
CREATE FUNCTION dbo.F_CHANGEMENT_HEURE (@AN INT)  
 
   RETURNS @T TABLE (AN SMALLINT, JOUR DATETIME, SAISON VARCHAR(5), DECALAGE_UTC SMALLINT)  
 
AS  
 
BEGIN  
 
DECLARE @DD DATETIME, @AND SMALLINT, @ANF SMALLINT;  
 
SELECT @AND = COALESCE(@AN, 1976), @ANF = COALESCE(@AN, 2100)  
 
WHILE @AND <= @ANF  
 
BEGIN  
 
-- passage à l'heure d'été, le dernier dimanche de mars à 1h  
 
   SET @DD = CAST(CAST(@AND AS CHAR(4)) + '0331 00:01' AS DATETIME);  
 
   WHILE DATEPART(weekday, @DD) <> 7  
 
      SET @DD = DATEADD(day, -1, @DD);  
 
   INSERT INTO @T VALUES (@AND, @DD, 'Été', +2);        
 
   IF @AND < 1996 
 
   BEGIN 
 
   -- passage à l'heure d'été, le dernier dimanche de septembre à 1h  
 
      SET @DD = CAST(CAST(@AND AS CHAR(4)) + '0930 00:01' AS DATETIME);  
 
      WHILE DATEPART(weekday, @DD) <> 7  
 
         SET @DD = DATEADD(day, -1, @DD);  
 
      INSERT INTO @T VALUES (@AND, @DD, 'Hiver', +2);        
 
   END    
 
   ELSE 
 
   BEGIN 
 
-- passage à l'heure d'hiver, le dernier dimanche d'octobre à 1h  
 
      SET @DD = CAST(CAST(@AND AS CHAR(4)) + '1031 00:01' AS DATETIME);  
 
      WHILE DATEPART(weekday, @DD) <> 7  
 
         SET @DD = DATEADD(day, -1, @DD);  
 
      INSERT INTO @T VALUES (@AND, @DD, 'Hiver', +1);              
 
   END    
 
   SET @AND = @AND + 1;     
 
END     
 
RETURN;  
 
END     
 
GO