begin process at 2010 03 18 03:04:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une procédure stockée

 > 

Pb déclaration dans curseurs imbriqués


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb déclaration dans curseurs imbriqués

jeudi 26 mai 2005 à 10:31:56 | Pb déclaration dans curseurs imbriqués

falcon16

Bonjour à tous, je suis en train d'écrire une procédure PL/SQL pour lister tous les enregistrements présents dans toutes les tables de ma base et ainsi générer les requêtes INSERT appropriées pour repeupler ma base ( je travaille avec SQL Server 2000 et je n'ai trouvé cette fonctionnalité en natif nul part )

Voici ma procédure :
-- déclaration des variables
DECLARE @table sysname
DECLARE @champ sysname
DECLARE @champs varchar(8000)
DECLARE @values varchar(8000)
DECLARE @nb_champs int


-- déclaration du curseur qui va lister toutes les tables de la base
DECLARE TABLECURSOR CURSOR
FOR     SELECT sysobjects.name As nom
    FROM sysobjects
    WHERE (sysobjects.xtype = 'U') AND (sysobjects.name != 'dtproperties')

-- ouverture du curseur et parcourt
OPEN TABLECURSOR
FETCH NEXT FROM TABLECURSOR
INTO @table

-- on parcourt tous les enregistrements
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @champs = ''
    SET @nb_champs = 0

    -- déclaration du curseur de parcourt des champs
    DECLARE FIELDCURSOR CURSOR
    FOR    SELECT syscolumns.name AS colonne
        FROM sysobjects,syscolumns
        WHERE ( sysobjects.id = syscolumns.id) And (sysobjects.name = @table)

    -- on récupère alors tous les champs de la table
    OPEN FIELDCURSOR
    FETCH NEXT FROM FIELDCURSOR
    INTO @champ

    -- on zappe le 1er champ qui est la clé primaire
    FETCH NEXT FROM FIELDCURSOR
    INTO @champ

    WHILE @@FETCH_STATUS = 0
    BEGIN
        IF @champs != ''
        BEGIN
            SET @champs = @champs + ', '
        END

        SET @champs = @champs + @champ
        SET @nb_champs = @nb_champs + 1

    FETCH NEXT FROM FIELDCURSOR
    INTO @champ
    END

    CLOSE FIELDCURSOR
    DEALLOCATE FIELDCURSOR

    --PRINT @table + ' ( ' + CAST(@nb_champs AS VARCHAR) + ' ) - ' + @champs
    DECLARE VALUESCURSOR CURSOR
    FOR SELECT @champs FROM @table

    OPEN VALUESCURSOR   <---
    FETCH NEXT FROM valuescursor
    INTO @values

    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT @values

    FETCH NEXT FROM valuescursor
    INTO @values
    END

    CLOSE valuescursor
    DEALLOCATE valuescursor

    -- on avance à la prochaine table
    FETCH NEXT FROM TABLECURSOR
    INTO @table
END

-- fermeture et destruction
CLOSE TABLECURSOR
DEALLOCATE TABLECURSOR

j'ai un chti problème, ligne 62 ( voir le <--- ) il me dit qu'il faut que je déclare la variable @table
Quelqu'un peut - t -il m'aider svp merci



Cette discussion est classée dans : table, champs, from, declare, fetch


Répondre à ce message

Sujets en rapport avec ce message

Ajout d'un description d'un champs pour access en sql [ par Jbs106 ] Salutationvoilà mon souci:Dans access, quand on visualise une table, miz à part le nom et le type du champs, il est possible d'ajouter un commentaire Problème Requête SQL INSERT INTO sous access [ par bonnaud ] Bonjour,J'ai un problème avec une requête INSERT INTO.En fait je veux insérer dans une BDD des champs d'une autre table. Le problème qu'en j'insère ce Liste des champs d'une table [ par drahcir ] Salut à tous,je chercher à récupérer la liste des champs d'une table (juste les noms). J'ai vu plusieurs choses à ce sujet : tables systèmes, procédur Table énorme. [ par kikoj ] Salut, J'ai une table qui contient 2 Millions 485 Milles et 467 Lignes (SQLServer 2000). Je ne vous parle pas des performances. Un "delete from where Lecture de la description de chaque champs d'une table dans une base SQL server 2000 [ par lambdacrash ] Bonjour, Quelle requête dois-je exécuter pour obtenir la description d'un champs nommé contenu dans une table (SQL)? Merci Renseigner un champs d'une table par une variable [ par Rouk ] Bonjour, Je n'arrive pas a renseigner un champs d'une table par une variable. Exemple : Base1.Table1.Champ = MavariableJ'ai essaye avec un set, mais s Comment sortir le nom et la valeur des champs d une table [ par mono_neurone ] Bonjour,j aurais voulu savoir s il est possible d ecrire une requete qui me sorte des lignes de deux colonnes reprennant respectivement : le nom du ch Update sur plusieurs tables [ par Chris_LaFouine ] Bonjour,Je voudrais savoir comment mettre à jour une table à partir des données d'une autre table. Je m'explique...J'ai une table A et une table B. Je Jointure externe sur la même table !! [ par tequila1 ] BonjourJe dois effectuer une requête avec jointure externe, mais sur la même table.Voici l' exemple :select    EXTRACT(YEAR_MONTH FROM a.periode) ,   Champs MEMO dans SQL Express??? [ par drakkard ] Bonjour, bonjour,n'étant pas très familier de SQL Express, je voulais savoir comment déclarer un champs memo dans SQL Express.Je souhaite créer une ta


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,168 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales