Bonjour, dans le cadre de mon stage j'ai effectuer une modification d'un module je ne vais pas m'attarder sur la situation.
Lorsque je fais
Aucun souci, fonctionne très bien, seulement l'entreprise veut des Package et non des requête en dur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 myConnexion.Open(); OracleCommand cmd = myConnexion.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "SELECT IDENTIFIER FROM DXCNT_PARAM_PROCESS WHERE NIAPPLICATION ='"+p_niapplication+"' AND QUEUE = '"+p_queue+"'"; OracleDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { identifier = int.Parse(reader.GetValue(0).ToString()); ; }
c'est pourquoi j'ai créer ce Package :
Il fonctionne correctement sur oracle et lorsque je le met à jours dans le C# je n'arrive pas à récupérer la valeur retourner par mon Package il part en exception.
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 FUNCTION F_SELECT (p_niapplication IN DXCONNECT.DXCNT_PARAM_PROCESS.NIAPPLICATION%TYPE, p_queue IN DXCONNECT.DXCNT_PARAM_PROCESS.QUEUE%TYPE) RETURN INTEGER IS result INTEGER := 0; BEGIN SELECT IDENTIFIER INTO result FROM DXCNT_PARAM_PROCESS WHERE QUEUE = p_queue AND NIAPPLICATION = p_niapplication; RETURN result; EXCEPTION WHEN OTHERS THEN RAISE; RETURN result; END F_SELECT;
Doit-je récupérer le return du Package d'une autre manière ou j'ai oublié quelque chose? En tous cas l’exécution d'un Package insert par exemple fonctionne très bien mais pour récupérer les valeurs d'un select la plus rien ne va :p
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 myConnexion.Open(); OracleCommand cmd = myConnexion.CreateCommand(); cmd.CommandText = "DXCONNECT.PCK_DB_DXCNT_PARAM_PROCESS.F_SELECT"; cmd.CommandType = System.Data.CommandType.StoredProcedure; OracleParameter prmNiapplication = new OracleParameter("p_niapplication", OracleType.Number, 12); prmNiapplication.Direction = ParameterDirection.Input; prmNiapplication.Value = p_niapplication; cmd.Parameters.Add(prmNiapplication); OracleParameter prmQueue = new OracleParameter("p_queue", OracleType.VarChar, 64); prmQueue.Direction = ParameterDirection.Input; prmQueue.Value = p_queue; cmd.Parameters.Add( prmQueue); OracleDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { identifier = int.Parse(reader.GetValue(0).ToString()); }
Si quelqu’un aurait une idée merci d'avance
Cordialement
Partager