Boa tarde pessoal,
Venho mais uma vez recorrer ao pessoal aqui do fórum para mais esse dilema.
Preciso colocar a quantidade de registros da tabela que vem do parametro no output.
Mas já tentei de tudo dá erro de sintaxe.
alguém poderia me ajudar ?
Agradeço desde já.
Declare
VTotalReg integer := 0;
begin
for i in (select a.tabela from mon_paramtabela a where a.statustabela = 'A')
loop
*/ esta linha abaixo que dá erro.
execute immediate ' select count(*) into VTotalReg from ' || i.tabela;
Dbms_Output.put_line('Tabela : ' || i.tabela || VTotalREg );
end loop;
end;
Count com parametro...
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qua, 31 Mar 2010 5:49 pm
- Localização: Ribeirao preto - SP
Nunca se de por vencido.
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qua, 31 Mar 2010 5:49 pm
- Localização: Ribeirao preto - SP
Nunca se de por vencido.
Bom dia pessoal, agradeço as dicas mas ainda não funcionou.
Peguei os exemplos la do link e nada.
O que percebi é o seguinte:
Se eu executro o sql immediate assim :
execute immediate 'select * from ' || i.tabela;
daí dá certo, mas não me antende pois eu preciso do total de registros que está na tabela, eu percebi que o problema acontece quando eu executo o count -> Into, pois aí recebo a mensagem que a tabela não existe.
Alguma outra luz?
Obrigado por enquanto..
Peguei os exemplos la do link e nada.
O que percebi é o seguinte:
Se eu executro o sql immediate assim :
execute immediate 'select * from ' || i.tabela;
daí dá certo, mas não me antende pois eu preciso do total de registros que está na tabela, eu percebi que o problema acontece quando eu executo o count -> Into, pois aí recebo a mensagem que a tabela não existe.
Alguma outra luz?
Obrigado por enquanto..
-
- Rank: Analista Júnior
- Mensagens: 74
- Registrado em: Seg, 06 Ago 2007 3:59 pm
- Localização: Campinas - SP
Eduardo Gomes
no link que o Tom mandou tem bastante coisa interessante que pode te ajudar.
Por exemplo:
Ou
Está mais pro final da página!!!
beleza?
Valeu Tom!!!
Por exemplo:
Example 7-8 Accessing %ROWCOUNT For an Explicit Cursor
DECLARE
TYPE cursor_ref IS REF CURSOR;
c1 cursor_ref;
TYPE emp_tab IS TABLE OF employees%ROWTYPE;
rec_tab emp_tab;
rows_fetched NUMBER;
BEGIN
OPEN c1 FOR 'SELECT * FROM employees';
FETCH c1 BULK COLLECT INTO rec_tab;
rows_fetched := c1%ROWCOUNT;
DBMS_OUTPUT.PUT_LINE('Number of employees fetched: ' || TO_CHAR(rows_fetched));
END;
CREATE FUNCTION row_count (tab_name VARCHAR2) RETURN NUMBER AS
rows NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ' || tab_name INTO rows;
RETURN rows;
END;
/
-- From an anonymous block, you might call the function remotely, as follows:
DECLARE
emp_count INTEGER;
BEGIN
emp_count := row_count@hr_db('employees');
DBMS_OUTPUT.PUT_LINE(emp_count);
END;
beleza?
Valeu Tom!!!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes