Bonjour, je souhaites copier des valeurs d'une table à une autre.
Les deux table sont parfaitement identique. Mais elle possède une colonne de type LONG RAW (que je ne dois pas changer en LOB ...ce qui serait plus efficace ...)

Et je rencontre un pb avec les colonnes de type LONG RAW.

1er méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO table_to select * from table_from
je récupère alors l'erreur : ORA-00997 Utilisation interdite du type de données LONG

2eme méthode (inspiré de plusieurs recherche !) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE
    CURSOR CUR IS 
    SELECT id, colLongRaw
    FROM table_to;
    rc CUR%ROWTYPE;
BEGIN
    OPEN CUR;
    LOOP
        FETCH CUR INTO rc;
        EXIT WHEN CUR%NOTFOUND;
        INSERT INTO table_from
        (
            id,
            colLongRaw
        )
        VALUES 
        (
            rc.id
            rc.colLongRaw
        ); 
    END LOOP;
    COMMIT;
END;
Voici l'erreur : ORA-06502 : erreur numérique ou erreur sur une valeur
(Rem : si j'enlève la colonne de type long Raw ça marche ... )

Vraisemblablement il est impossible d'utiliser la 1er méthode, mais je ne comprends pas pourquoi la seconde méthode ne fonctionne pas.

Merci de votre aide ...