Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Insert de variável em tabela - PL SQL dúvida
09-09-2010, 16:08 (Esta mensagem foi modificada pela última vez a: 09-09-2010 16:16 por Ferreira.)
Mensagem: #1
Insert de variável em tabela - PL SQL dúvida
Olá!

Tenho o seguinte procedimento:

Código:
CREATE OR REPLACE PROCEDURE PICAGE."SP_AGE_SEM_GEST" (
p_procedure OUT VARCHAR2,
p_periodo_calc IN NUMBER := 201006001)
IS
v VARCHAR2 (32766);

CURSOR ent_vend
IS
SELECT DISTINCT ent_com.cod_ent_vend
FROM tbl_ref_funcao func, tbl_conf_hier_comercial_teste hier INNER JOIN tbl_conf_ent_comercial_teste ent_com
ON ( hier.id_conf_ent_comercial = ent_com.id_conf_ent_comercial
AND hier.id_conf_cal_periodo_calc =
ent_com.id_conf_cal_periodo_calc
)
LEFT OUTER JOIN tbl_conf_hier_comercial_teste hier1
ON ( hier.id_conf_ent_comercial_pai =
hier1.id_conf_ent_comercial
AND hier.id_conf_cal_periodo_calc =
hier1.id_conf_cal_periodo_calc
)
WHERE hier.id_ref_canal = 1
AND hier.id_ref_funcao = 6
AND hier.id_conf_cal_periodo_calc = 201006001
AND hier1.id_ref_funcao <> 3;
BEGIN
FOR ev IN ent_vend
LOOP
v := v || ev.cod_ent_vend || ',';
END LOOP;

p_procedure := 'Entidade de Venda = ' || v;
DBMS_OUTPUT.put_line (p_procedure);
END sp_age_sem_gest;


Que efectua uma query, guarda na variável os valores obtidos separados por 'virgula'.

Agora preciso ter outro procedimento que receba o valor da variável (p_procedure) e faça insert numa tabela, mas coloque um registo por linha da tabela e não todos os registos na mesma linha.

Podem ajudar-me???

Obrigada
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
14-09-2010, 00:09 (Esta mensagem foi modificada pela última vez a: 14-09-2010 00:17 por jaimetotal.)
Mensagem: #2
RE: Insert de variável em tabela - PL SQL dúvida
Also assim? http://www.dbforums.com/oracle/998642-pl...array.html

(\__/)
(='.'=) This is Bunny. Put him in your signature and
(")_(") help him on his way to world domination.

Duty Calls (XKCD):
[Imagem: duty_calls.png]
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
15-09-2010, 12:21
Mensagem: #3
RE: Insert de variável em tabela - PL SQL dúvida
Depois de leres o campo.
Um ciclo que faça o substr do campo até à próxima virgula e guarda numa variavel.
A condição de fim de ciclo será chegares à última virgula ou não teres mais campos para ler.
Depois disso, meter as variaveis nos vários campos da tabela.

para pesquisares continuamente por virgulas, será guardar para uma variavel sempre o resultado de substr(Mensagem, 0,instr(Mensagem,',')) isto dá-te sempre tudo até à proxima virgula.
claro que convem testar primeiro se existe uma proxima virgula, que mais não é do que testar se o instr te devolve zero ou não.

Se trabalhares de forma mais "astuta" também podes fazer o ciclo só a perguntar À "Mensagem" quantas virgulas tem e em que posição (ciclo de instr) e depois de uma assentada fazeres os substring todos...

Para veres as funções que tens para jogar a nível de manipulaçao de strings, dá uma olhada neste site
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
15-09-2010, 20:51
Mensagem: #4
RE: Insert de variável em tabela - PL SQL dúvida
Então? Ficaste safo?
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 3 Visitante(s)