Bonjour à tous,

J'aurais besoin d'un petit coup de pouce pour une rêquete avec un IF THEN.

Context :
J'importe des données via un excel dans une table nommé copydata . Une de mes donnée est une date, elle est stocké dans le champs data66 lors de l'importation. Selon les fichiers le format de la donnée change parfois c'est un reel, parfois c'est un text. Je cherche à stocker la date selon son type dans la table "project" dans laquel j'ai créer deux colonnes avec ces deux différents type: proj_dateChar et proj_dateReal.

Ma requête :
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
 
CREATE OR REPLACE FUNCTION test_date ()
 RETURNS VOID AS $$
 
	DECLARE
		type_date66 char;
 
	BEGIN		
		SELECT data_type  INTO type_date66 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'copydata' AND column_name ='date66';
		RAISE notice 'verif(%)', type_data66;
		IF type_date66 = 'real' THEN
			EXECUTE 'INSERT INTO project(proj_dateReal)SELECT data66';
		ELSE 
			EXECUTE 'INSERT INTO project(proj_dateChar)SELECT data66';
		END IF;
	END;
  $$
  LANGUAGE plpgsql VOLATILE;
Erreur:
J'ai déclaré type_date66 mais il me dit qu'il n'existe pas.

Avez vous des conseils pour gérer d'une autre facons ces deux formats de date un peu bizarre ? Auriez vous une idée pour ma fonction ?

Merci d'avance