Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 16h51   #1
Invité régulier
 
Inscription : octobre 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 16
Points : 6
Points : 6
Par défaut [PRO*C] Problème avec CREATE TABLE et nom de table dynamique

Bonjour à tous j'espère que je ne me trompe pas de section pour mon poste (je vais donc poster le même dans la section oracle).


J'utilise Pro*C et j'ai un problème avec une requête CREATE TABLE. Je m'explique:

Mon programme demande quel est le nom de ma variable mission, que je récupère tout bêtement avec un scanf.
Je veux alors créer une table où un de mes champs doit avoir comme valeur le char qui est le nom de la mission. Mais voila, la fonction qui doit créer la table ne la crée pas... Alors que quand je rentre cette variable en dur, cela fonctionne très bien. J'aimerais avoir un petit coup de pouce de votre part si c'est possible. Si ça se trouve j'essaie de faire quelque chose pas forcément possible.

Voila mon code de la fonction servant à lire la table:

Voila le code servant créer la fonction:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void creer_table1(char nom_mission[50])
{
 
EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR TABLE[50];
EXEC SQL END DECLARE SECTION;
 
   strcpy(TABLE.arr,nom_mission);
   TABLE.len =strlen(TABLE.arr);
 
 
    EXEC SQL CREATE TABLE mission.msn_test AS
             SELECT * FROM mission.msn_mission
             WHERE missionname=:TABLE;
 
              printf("Table MSN_TEST creee dans le schema MISSION\n");
}

Merci d'avance pour votre aide.

PS:Je travaille sous code blocks et avec oracle
laurent_56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h06   #2
Membre Expert
 
Homme
Junior developer C/C++/Embedded system
Inscription : juin 2010
Messages : 642
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Junior developer C/C++/Embedded system

Informations forums :
Inscription : juin 2010
Messages : 642
Points : 1 351
Points : 1 351
Bonjour,

es-tu sûr de la syntaxe pour utiliser une string en clause where ?

D'après ce que m'indique cette source, je pense qu'il faudrait faire

Code :
1
2
3
4
5
6
7
8
void creer_table1(const char* nom_mission)
{
    EXEC SQL CREATE TABLE mission.msn_test AS
             SELECT * FROM mission.msn_mission
             WHERE missionname = :nom_mission;
 
              printf("Table MSN_TEST creee dans le schema MISSION\n");
}
Bousk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h47.


 
 
 
 
Partenaires

Hébergement Web