Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 19/08/2011, 01h04   #1
Invité régulier
 
Inscription : janvier 2008
Messages : 57
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 57
Points : 6
Points : 6
Par défaut Intégrer le résultat d'une requête qui contient une "sequence" dans une requête simple

bonsoir à tous, j'ai créé une sequence seq_j et une table table_j

Code :
1
2
3
4
5
6
7
8
9
10
11
CREATE sequence seq_j
increment BY 1
start WITH 1
nomaxvalue;
 
CREATE TABLE table_j(
num_tab number(4) PRIMARY KEY,
nom_tab varchar2(30));
 
 
String req="insert into table_j (num_tab,nom_tab)values(seq_j.nextval,'LOG"+jTable1.getValueAt(row, COLUMN)+""+dat+"')";

resultat: 
NUM_TAB NOM_TAB 
-------- --------------------------- 
5 LOGarticle17 08 2011 14:46 
6 LOGarticle17 08 2011 14:47 
mon problème:
je veux sélectionner le nom de la table "nom_tab" qui a la valeur de num_tab= seq_j.currval-1.

Code :
SELECT nom_tab FROM table_j WHERE num_tab=(SELECT seq_j.currval-1 FROM dual);
il m'affiche cette erreur "ORA-02287: numéro de séquence non autorisé ici"

s'il vous plait aidez moi à résoudre ce problème et merci beaucoup
sophiesophie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 09h43   #2
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
bonjour,

Oracle dit :

Citation:
Uses and Restrictions of NEXTVAL and CURRVAL

CURRVAL and NEXTVAL can be used in the following places:

VALUES clause of INSERT statements

The SELECT list of a SELECT statement

The SET clause of an UPDATE statement

CURRVAL and NEXTVAL cannot be used in these places:

A subquery


A view query or materialized view query

A SELECT statement with the DISTINCT operator

A SELECT statement with a GROUP BY or ORDER BY clause

A SELECT statement that is combined with another SELECT statement with the UNION, INTERSECT, or MINUS set operator

The WHERE clause of a SELECT statement

DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement

The condition of a CHECK constraint
http://download.oracle.com/docs/cd/B...2.htm#i1006157


Faire un tour sur la doc Oracle est souvent salutaire

cordialement.
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 10h02   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 810
Points : 5 810
Citation:
Envoyé par sophiesophie Voir le message
...
s'il vous plait aidez moi à résoudre ce problème et merci beaucoup
Dans l'insert, récuperez la valeur de la séquence via la clause RETURNING INTO et stockez la dans une variable.
mnitu 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 16h24.


 
 
 
 
Partenaires

Hébergement Web