TYPE … IS TABLE OF - BULK COLLECT
PL/SQL é um universo, estamos em débito com ela aqui no Estação ....
Por favor, vamos jogar os "goto pula" pra casa do landjah!!! O mundo agradece!! ... e o unverso diz AMÉM!!!
No Oracle (10i ), para persistir em memória um conjunto de registros de uma tabela qualquer para mais adiante usá-los:
Passo 1) Declare um array do tipo RowType da tabela a qual deseja armazenar:
DECLARE I INTEGER; TYPE My_TIPO_tabela IS TABLE OF <Table name> %ROWTYPE; V_TabTemp My_TIPO_tabela;
Passo 2) Parra carregar o vetor “V_TabTemp”:
begin -- Test statements here SELECT * BULK COLLECT INTO V_TabTemp FROM <table name> WHERE <condições>
Passo 3) Imprimindo os dados:
FOR i IN 1..2 dbms_output.put_line(' Dado teste' || V_TabTemp.<ColumnName>(i)); END;
Passo 4) Fazer um insert numa tabela cujo as colunas sejam idênticas as do vetor:
FORALL I IN 1.. V_TabTemp.COUNT INSERT INTO <tableName> VALUES V_TabTemp.(I);
Exemplo:
DECLARE type AVet is table of Clientes%rowtype; i integer; VetImportaClientes AVet; BEGIN -- ***** IMPORTAÇÃO dos Clientes i := 0; select * bulk collect into VetImportaClientes from ClientesA where ClientesA.Tipo = 'J'; forall i in 1.. VetImportaClientes.count insert into PossiveisClientesB values VetImportaClientes(i)
Nenhum comentário:
Postar um comentário