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/[email protected]/
> Falar com os Moderadores:([EMAIL PROTECTED])
> Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar
> ______________________________________________________________________
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
______________________________________________________________________
Histórico: http://www.mail-archive.com/[email protected]/
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