Parcourir toutes les lignes dans la table PL/SQL
De la table table1 je voudrais recueillir les valeurs de certaines colonnes. Tout d'abord j'ai essayé de copier une table à l'autre, mais je l'ai coincé lorsque j'essaye de:
for row in row_count
for column in column_count
insert into table2 at (x,y) value from (row,column)
column++
end
row++
end
Ma première fonction pour compter le nombre de lignes est:
create or replace FUNCTION func_count_rows(table_name IN varchar2,
debug boolean default false)
RETURN number IS
total number(2) := 0;
BEGIN
IF debug = true THEN
DBMS_OUTPUT.put('Function count rows: ');
DBMS_OUTPUT.PUT_LINE('select count(*) from ' || table_name || ';');
DBMS_OUTPUT.put('Returns: ');
DBMS_OUTPUT.PUT_LINE('');
END IF;
execute immediate 'select count(*) from ' || table_name into total;
RETURN total;
END;
Puis ma procédure de première impression des valeurs, mais je suis bloqué ici:
create or replace procedure gather_values (rows_quantity in VARCHAR2,
column_count in VARCHAR2,
debug boolean default false
)
is begin
select
FOR i IN 1..rows_quantity LOOP
DBMS_OUTPUT.PUT_LINE('#### ROW 1 ####');
FOR i IN 1..94 LOOP
END LOOP;
END LOOP;
end;
Je ne sais pas comment obtenir la colonne quantité et la valeur exacte de (x,y) de la table.
Pourrait avoir l'amabilité de m'aider? Merci.
J'ai oublier de dire que je suis en utilisant oracle SQL environnement.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, cela n'a rien en commun avec PL/SQL:
Voir la documentation ici.
De copier toutes les lignes d'une table à l'autre:
C'est une simple requête SQL, il peut être utilisé tel quel, ou à l'intérieur d'un PL/SQL procédure.
Il y a beaucoup de possibilités pour itérer toutes les lignes d'une table. Le plus simple:
Une autre façons:
Pour compter les lignes dans une table, vous pouvez utiliser la requête SQL:
ou presque le même code PL/SQL (vous n'avez pas besoin d'utiliser
execute immediate
):Mais en tout cas, vous n'avez pas besoin de savoir, combien de lignes et de colonnes d'une table contient, pour les réitérer. Vous avez seulement besoin de savoir, comment filtre, lequel d'entre eux vous souhaitez effectuer une itération.