create or replace p( p_schema in varchar2, p_column in varchar2 )
as
begin
    for x in ( select table_name
                 from all_tab_columns
                where owner = p_schema
                  and column_name = p_column )
    loop
         execute immediate 'delete from ' || x.table_name ||
                           ' where .... ' ;
    end loop;
end;
/
--
Marcio Portes
http://mportes.blogspot.com


rodrigonapalm wrote:
> Estou
> 
> preparando um procedure com função de remorer alguns registros de
> um 
> campo especifico de todas as tabelas do meu Squema. mas não
> consigo 
> fazer com que o delete encontre as tabelas definidas como variaveis 
> em um cursor no sistema. alguem me dê uma Luz....
> 
> olha ai a procedure...
> 
> CREATE OR REPLACE PROCEDURE SQL_DINAMICO(coluna IN VARCHAR2, tabela IN
> 
> VARCHAR2) IS
>             cur_handle INTEGER;
>             texto VARCHAR2(80);
>             temp_cur_handle VARCHAR2(300);
>             temp_cur_handle2 VARCHAR2(300);
> BEGIN
>       cur_handle := DBMS_SQL.OPEN_CURSOR;
>                     DBMS_SQL.PARSE(cur_handle,
>                       'SELECT ' ||TABLE_NAME|| ' FROM ' 
> ||ALL_TAB_COLUMNS 'WHERE' OWNER = 'RODRIGO' 'AND' ||COLUMN_NAME || 
> = 'CODFILIAL',
> 
>                     DBMS_SQL.V7);
>                     DBMS_SQL.DEFINE_COLUMN(cur_handle, 1, texto, 80);
>       
>       temp := DBMS_SQL.EXECUTE(cur_handle);
> 
>               LOOP
> 
>                   IF DBMS_SQL.FETCH_ROWS(cur_handle) = 0
>                   THEN EXIT;
>                                 ELSE
> 
>                 DBMS_SQL.COLUMN_VALUE(cur_handle, 1, texto);
>                 DBMS_OUTPUT.PUT_LINE(texto);
> 
>                 DBMS_SQL.PARSE(cur_handle2,
>                       'DELETE FROM ' ||REC.TABLE_NAME|| ' WHERE ' 
> ||REC.COLUMN_NAME|| ' = 9',
> 
>                     DBMS_SQL.V7);
> 
>                 temp_cur_handle2 := DBMS_SQL.EXECUTE(cur_handle2);
> 
>                                 END IF;
>                 END LOOP;
> 
>                 DBMS_SQL.CLOSE_CURSOR(cur_handle);
> 
>  
> 
> END SQL_DINAMICO;
> 
> 
> 
> 
> 
> 
> 
> ______________________________________________________________________
> 
> Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> Falar com os Moderadores:([EMAIL PROTECTED])
> Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
> ______________________________________________________________________ 
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 


______________________________________________________________________

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
______________________________________________________________________ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a