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

Responder a