J'ai donc une table avec plus de 10000 enregistrements, avec des titres d'ID, produit, U, C, ELONG ... (cela continue avec diverses rubriques). Ce tableau comporte dans la colonne PRODUCT, 4 entrées possibles, CAPL, ZOD, HR et PKL. Je veux diviser cela pour qu'il y ait une table pour les données 'CAPL' seulement, les données ZOD uniquement les données HR uniquement et les données PKL seulement, dans SQL Developer. J'exécutez la commande suivante:SQL Developer Table de copie avec des données spécifiques
declare
l_sql varchar2(32767);
c_tab_comment varchar2(32767);
procedure run(p_sql varchar2) as
begin
execute immediate p_sql;
end;
begin
run('create table "MP".CAPLAAAA as select * from "MP"."LASTQTTBL" where PRODUCT = "CAPL"');
select comments into c_tab_comment from sys.all_TAB_comments where owner = 'MP' and table_name = 'LASTQTTBL' and comments is not null;
run('comment on table MP.CAPLAAAA is '||''''||REPLACE(c_tab_comment, q'[']', q'['']')||'''');
for tc in (select column_name from sys.all_tab_cols where owner = 'MP' and table_name = 'LASTQTTBL')
loop
for c in (select comments from sys.all_col_comments where owner = 'MP' and table_name = 'LASTQTTBL' and column_name=tc.column_name)
loop
run ('comment on column MP.CAPLAAAA.'||tc.column_name||' is '||''''||REPLACE(c.comments, q'[']', q'['']')||'''');
end loop;
end loop;
EXCEPTION
WHEN OTHERS THEN NULL;
end;
Mais rien ne sort, même après l'exécution, il arrive avec « procédure PL/SQL terminée avec succès. » Sur la sortie du script.
Est-ce que je me trompe n'importe où? J'apprécierais beaucoup l'aide.