2 Replies Latest reply: Dec 20, 2011 7:28 AM by 902984 RSS

    parameter into a CREATE TABLE with PRO*C

    902984
      Hi,
      I use PRO*C and i've a problem with a CREATE TABLE request.
      My program asks for the name of my variable mission, quite simply that I get with a scanf.
      So, I want to create a table where one of the fields of the table must be the same that the char of the name of the mission. But, the function doesn't do anything… But when i write the name of the variable there is no problem.
      Thanks for your answers and sorry for my english.

      Code :
           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");
      }

      PS: My IDE is code::blocks
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------

      Bonjour à tous,


      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 :
      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 Barale

      Edited by: 899981 on 30 nov. 2011 08:16