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