Gostaria de uma ajuda no FOR LOOP abaixo. Não sei como maniular as variáveis
dentro do FOR LOOP:
-- cria schema auxiliar
CREATE SCHEMA dump_aux;
-- tabela para guardar os nomes das tabelas cdrger* disponíveis
DROP TABLE TABELAS_CDRGER;
CREATE TABLE TABELAS_CDRGER AS
SELECT TABLENAME
FROM PG_TABLES LIMIT 0;
-- preenche tabela auxiliar com nomes das tabelas cdrger* disponíveis
INSERT INTO TABELAS_CDRGER
SELECT TABLENAME
FROM PG_TABLES
WHERE TABLENAME LIKE 'cdrger%';
COMMIT;
DECLARE
COUNT_REGS INT;
REG_TAB RECORD;
BEGIN
-- para cada tabela cdrger*, cria uma igual no schema dump_aux e preenche
-- com amostragem de x% dos dados da tabela cdrger* original
*FOR REG_TAB IN SELECT TABLENAME AS NOME_TAB_CDRGER
FROM tabelas_cdrger Loop
SELECT INTO COUNT_REGS COUNT(*) FROM REG_TAB.NOME_TAB_CDRGER;
IF COUNT_REGS > 0 THEN
CREATE TABLE REG_TAB.DUMP_AUX.NOME_TAB_CDRGER AS
SELECT * FROM REG_TAB.NOME_TAB_CDRGER LIMIT 0;
INSERT INTO DUMP_AUX.NOME_TAB_CDRGER
SELECT *
FROM REG_TAB.NOME_TAB_CDRGER
* WHERE (
CAST(
SUBSTRING(
ENCODE(cstring_send(tidout(ctid)),'escape'),2,
position(',' in rtrim( encode(cstring_send(tidout(ctid)),'escape')
))-2 )
as int) * 199+
cast(
substring(
encode(cstring_send(tidout(ctid)),'escape'),
position(',' in encode(cstring_send(tidout(ctid)),'escape'))+1,
length(rtrim(encode(cstring_send(tidout(ctid)),'escape'))) -
position(','
in encode(cstring_send(tidout(ctid)),'escape'))-1 )
as int) )
% 10=1;
*END IF;
END LOOP;
END;*
--
Jose Luis Ramos Jr
Campinas - SP
Oracle OCP DBA 8i, 9i,10g
Fone: 19-37056793
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral