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 10/05/2004, 11h22   #1
Invité de passage
 
Inscription : avril 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 6
Points : 2
Points : 2
Par défaut [PRO*C] Insert

je voudrais savoir s'il est possible dans une commande sql insert d'inserer des données via le clavier et des données prédéfinies:

Code :
EXEC SQL INSERT INTO Liste (id) VALUES('10-jun-04', 'rue Marie Curie Angers', TO_DATE('08:00 A.M.','HH:MI A.M.'), '10-jun-04', 'rue 8 mai 1945 Saint Barthélemy',TO_DATE('11:00 P.M.', 'HH:MI P.M.'), 10, 003225892460,:id, 489428635770, 452468537832, 4784208743,'Un jour à Bruxelles'");
id est une valeur introduite par l'utilisateur via scanf
id est une variable hôte

merci d'avance
friends est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 11h36   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
Bien évidement vous pouvez utiliser des variables hôtes dans vos requêtes (je ne vois pas trop l'utilité d'un programme qui n'utiliserait que des valeurs en dur!). Elles sont préfixées du caractère : (exemple :variable).

Attention tout de même à votre syntaxe :

Insert into ma_table (champ) values( champ1, champ2, ...champn) ne fonctionnera pas. Vous devez avoir autant de colonnes dans la description que dans la clause VALUES
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 13h36   #3
Invité de passage
 
Inscription : avril 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 6
Points : 2
Points : 2
je veux des valeurs durs et une variable hôte, je dois faire comment?
que des variables hôtes, j'ai essayé, ça marche mais dans ce cas si j'aimerais insérer les deux.

friends est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 13h40   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
Les variables hôtes sont déclarées au niveau de votre bloc EXEC SQL DECLARE

Elles peuvent être alimentées avec des littéraux ou des variables de votre programme C.

Vous devriez consulter quelques exemples dans la documentation Oracle.
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 13h52   #5
Invité de passage
 
Inscription : avril 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 6
Points : 2
Points : 2
j'ai le livre pro*c user's guide mais je n'ai pas trouvé.
je vais encore regarde.
je sais maint qu'on sait le faire.
merci
friends est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 14h11   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 530
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 530
Points : 6 460
Points : 6 460
Citation:
...
char buf[15];
int emp_number;
float salary;
...
gets(buf);
emp_number = atoi(buf);

EXEC SQL SELECT sal INTO :salary FROM emp
WHERE empno = :emp_number;
...
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 14h14   #7
Invité régulier
 
Inscription : février 2003
Messages : 10
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 10
Points : 7
Points : 7
attention afin déviter les effects de bort quand tu déclares tes variables hote dans un bloc [EXEC SQL BEGIN DECLARE SECTION; ... EXEC SQL END DECLARE SECTION;] il ne faut pas oublier de rajouter 1 caractère dans la déclaration de ta variable exemple si tu as une colonne raison_sociale varchar2(36) dans une table, il faut déclarer ta variable de la façon suivante w_raison-sociale[36+1] celà concerne essentiellement les variables varchar et char !!!

voilà c'était juste une précision 8)
LoloLaPatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2004, 15h00   #8
Invité de passage
 
Inscription : avril 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 6
Points : 2
Points : 2
merci
friends est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h20.


 
 
 
 
Partenaires

Hébergement Web