Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adriano MSB

Usando o RowType

Recommended Posts

Pessoal é o seguinte, tenho um arquivo texto de modelo tipo assimEu @sig.nm_cli@ portador do rg nº @sig.rg_cli@ casado(a) com o(a) @sig.conjuje_cli@então essas variavel serão substituidas pelos valores dos campos existentes na base então bolei o seguintecriei uma tabela de campos com as colunas camp_antes e camp_depois, dai fiz o seguinte.a variavel P_ID_BRIEF é passado como parametro in da procedure--declaraçãoCURSOR C_BRIEF IS SELECT * FROM TB_SRV_EVT_BRIEF WHERE ID = P_ID_BRIEF; R_BRIEF C_BRIEF%ROWTYPE; CURSOR C_CAMP IS SELECT * FROM TB_SYS_CAMPOS;R_CAMP C_CAMP%ROWTYPE;V_ARQUIVO NVARCHAR2(300);pra cada coluna da tabela TB_SRV_EVT_BRIEF eu criei um registro na tabela tb_sys_campos--procedureOPEN C_BRIEF;OPEN C_CAMP; LOOP FETCH C_CAMP INTO R_CAMP; EXIT WHEN C_CAMP%NOTFOUND;/* Isso não funciona mas seria essa lógica que eu queria EXECUTE IMMEDIATE 'R_BRIEF.R_CAMP.CAMP_DEPOIS' INTO V_RESULT; --então eu tenhu uma variavel R_BRIEF do tipo rowtype rowtype, a coluna da variavel R_BRIEF que eu desejo utilizar é o valor da outra variavel rowtype R_CAMP.CAMP_DEPOIS'*/ V_ARQUIVO := REPLACE(V_ARQUIVO,R_CAMP.CAMP_ANTES,V_RESULT); END LOOP;bom espero que voces tenham entendido.se puderem me ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe uma tabela de metadados chamada dba_tab_columns (pode-se usar a view user_tab_columns)

que faria o que TB_SYS_CAMPOS , nela você tem o tipo e a posição da coluna na tabela, eu acho que daria para montar o que você está pensando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo mas como eu faria pra pegar o valor de uma coluna da variavel rowtypeseria algo assim:variavel := r_campos.campodepois;x := r_brief.variavel;mas sabemos que isso não funcionaSe alguem tem uma idéia de como c faz por favor me mande um exemplomuito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria acessar a coluna do cursor pela posição, não sei fazer isto em pl-sql, mas gostei da ideia , tentei no asktom mas não achei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal eu ja arranjei outra solução que num é tão boa, será que ninguem tem nenhuma idéia d como c faz isso, se eu conseguisse fazer dessa forma me livraria d mta mão d obra no futuro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.