[ORACLE PL/SQL] DEBUTANT BESOIN AIDE

Le
Chris
Soit le script suivant :

question cela fonctionne mais j'ai pas de sortie pour voir la progression
pourquoi dbms_output.put_line ne fonctionne pas ?

set serveroutput on size 100000
set echo on
set feedback off
set verify off
connect sys/xxxx sysdba
declare
msg_log varchar(4000);
cursor table_list
is select table_name from dba_tables
where owner='&1';
table_list_rec table_list%ROWTYPE;
begin
dbms_output.put_line(' TEST ');
open table_list;
loop
msg_log := '-> ' || table_list_rec.table_name;
dbms_output.put_line(msg_log);
fetch table_list into table_list_rec.table_name;
exit when table_list%NOTFOUND;
execute immediate('analyze table &&1..'||
table_list_rec.table_name||' compute statistics');
execute immediate('analyze table
&&1..'||table_list_rec.table_name||' compute statistics for all indexed
columns');
end loop;
end;

A+
chris
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Igor Racic
Le #21852141
Bonjour,

Il te manque un "/" apres le end (dans nouvelle ligne):

<quote>
end;
</quote>

==>

<quote>
end;
/
</quote>


NOTE: Utiliser 'analyze' n'est pas une bonne idée - regarde dbms_stats.

Igor
astalavista
Le #21852091
connect sys/xxxx sysdba
ne marche pas ...

un vrai copier/coller de la procédure serait mieux ...

----- Original Message -----
From: "Chris" Newsgroups: fr.comp.applications.sgbd
Sent: Thursday, July 05, 2007 6:29 PM
Subject: [ORACLE PL/SQL] DEBUTANT BESOIN AIDE


Soit le script suivant :

question cela fonctionne mais j'ai pas de sortie pour voir la progression
pourquoi dbms_output.put_line ne fonctionne pas ?

set serveroutput on size 100000
set echo on
set feedback off
set verify off
connect sys/xxxx sysdba
declare
msg_log varchar(4000);
cursor table_list
is select table_name from dba_tables
where owner='&1';
table_list_rec table_list%ROWTYPE;
begin
dbms_output.put_line(' TEST ');
open table_list;
loop
msg_log := '-> ' || table_list_rec.table_name;
dbms_output.put_line(msg_log);
fetch table_list into table_list_rec.table_name;
exit when table_list%NOTFOUND;
execute immediate('analyze table &&1..'||
table_list_rec.table_name||' compute statistics');
execute immediate('analyze table
&&1..'||table_list_rec.table_name||' compute statistics for all indexed
columns');
end loop;
end;

A+
chris
Chris
Le #21852071
Soit le script suivant :

question cela fonctionne mais j'ai pas de sortie pour voir la progression
pourquoi dbms_output.put_line ne fonctionne pas ?

set serveroutput on size 100000
set echo on
set feedback off
set verify off
connect sys/xxxx as sysdba <= j'ai glissé
declare
msg_log varchar(4000);
cursor table_list
is select table_name from dba_tables
where owner='&1';
table_list_rec table_list%ROWTYPE;
begin
dbms_output.put_line(' TEST ');
open table_list;
loop
msg_log := '-> ' || table_list_rec.table_name;
dbms_output.put_line(msg_log);
fetch table_list into table_list_rec.table_name;
exit when table_list%NOTFOUND;
execute immediate('analyze table &&1..'||
table_list_rec.table_name||' compute statistics');
execute immediate('analyze table
&&1..'||table_list_rec.table_name||' compute statistics for all indexed
columns');
end loop;
end;

A+
chris
Chris
Le #21851951
Bonjour,

Igor Racic a écrit :
Bonjour,

Il te manque un "/" apres le end (dans nouvelle ligne):

<quote>
end;
</quote>

==>

<quote>
end;
/
</quote>




Grrrr ! bon je debute avec pl/sql


NOTE: Utiliser 'analyze' n'est pas une bonne idée - regarde dbms_stats.




Tiens justement quel est la différence (plus rapide ?)


Igor



Encore merci

A+
chris
Igor Racic
Le #21851921
Bonjour,

Pour calculer les stats pour les plans d'exécution - il faut utiliser
dbms_stats.

La doc d'Oracle est dans
tahiti.oracle.com


Igor




Tiens justement quel est la différence (plus rapide ?)

Publicité
Poster une réponse
Anonyme