Bonjour,

Je ne suis pas un habitué d'Oracle, et je ne comprends pas pourquoi ma fonction ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE FUNCTION uppercase_fields_name()
BEGIN
  FOR r IN ( SELECT owner, table_name, column_name
             FROM   ALL_TAB_COLUMNS
             WHERE  owner IN ( 'URBA' )
             AND    column_name <> UPPER( column_name )
           )
  LOOP
    EXECUTE IMMEDIATE 'ALTER TABLE "' || r.owner || '"."' || r.table_name
            || '" RENAME COLUMN "' || r.column_name || '" TO ' || r.column_name;
  END LOOP;
END;
/
Quand je souhaite l''exécuter :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
select uppercase_fields_name() FROM DUAL;
J'ai une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Error: ORA-06575: Package or function UPPERCASE_FIELDS_NAME is in an invalid state
 
SQLState:  65000
ErrorCode: 6575
Position: 40
D'où cela peut venir ?

Merci.