Procedure PL SQL
Galera algue sabe me dizer o que está errado nessa procedure? Preciso fazer update de algumas tabelas, consigo criar com esse script porém não consigo executa-la!
Ao escrever a procedure usei o seguinte:
create or replace procedure sp_dw_update is
begin
begin
execute immediate ('truncate table TESTE_PROCEDURE');
execute immediate ('drop sequence seq_TESTE');
execute immediate ('CREATE SEQUENCE seq_TESTE MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10');
End ;
INSERT INTO TESTE_PROCEDURE (
SRK_TESTE,
SRK_PROJETO,
ID_PROJETO,
RESUMO,
DESCRICAO,
PROJETO
)
SELECT
seq_TESTE.NEXTVAL,
SRK_PROJETO,
ID_PROJETO,
RESUMO,
DESCRICAO,
PROJETO
FROM dim_projeto
END;
end sp_dw_update;
Ao escrever a procedure usei o seguinte:
create or replace procedure sp_dw_update is
begin
begin
execute immediate ('truncate table TESTE_PROCEDURE');
execute immediate ('drop sequence seq_TESTE');
execute immediate ('CREATE SEQUENCE seq_TESTE MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10');
End ;
INSERT INTO TESTE_PROCEDURE (
SRK_TESTE,
SRK_PROJETO,
ID_PROJETO,
RESUMO,
DESCRICAO,
PROJETO
)
SELECT
seq_TESTE.NEXTVAL,
SRK_PROJETO,
ID_PROJETO,
RESUMO,
DESCRICAO,
PROJETO
FROM dim_projeto
END;
end sp_dw_update;
Daniel
Curtidas 0
Melhor post
Jothaz
23/07/2015
Sempre que posta um código use a tage code "</>" do primeiro ícone da esquerda.
Outra coisa se esta retornando erro post o erro, assim fica muito mais simples ajudar.
Teste o código abaixo:
Outra coisa se esta retornando erro post o erro, assim fica muito mais simples ajudar.
Teste o código abaixo:
create or replace procedure sp_dw_update is begin begin execute immediate ('truncate table TESTE_PROCEDURE'); execute immediate ('drop sequence seq_TESTE'); execute immediate ('CREATE SEQUENCE seq_TESTE MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10'); End ; INSERT INTO TESTE_PROCEDURE ( SRK_TESTE, SRK_PROJETO, ID_PROJETO, RESUMO, DESCRICAO, PROJETO ) SELECT seq_TESTE.NEXTVAL, SRK_PROJETO, ID_PROJETO, RESUMO, DESCRICAO, PROJETO FROM dim_projeto; end sp_dw_update;
GOSTEI 1
Mais Respostas
Daniel
22/07/2015
Obrigado Jothaz, deu certo... aproveitando o assunto tenho outras procedures para serem criadas basicamente com a mesma sintaxe porém os insert possuem uma cláusula WHERE e o PL SQL não está aceitando! Sabe de alguma alternativa?
Mais uma vez obrigadoo!!!
Mais uma vez obrigadoo!!!
GOSTEI 0
Jothaz
22/07/2015
Não quero ser chato, mas acho que você fazer uma pesquisa e se iterar sobre os rudimento do PL/SQL, do contrário pode ser frustrante.
Respondendo sua pergunta, teoricamente é só adicionar o WHERE:
Agora fica quase impossível ajudar sem você posta seu código, se for postar use a tag cod "</>", ou o erro que esta retornando.
Respondendo sua pergunta, teoricamente é só adicionar o WHERE:
INSERT INTO TESTE_PROCEDURE ( SRK_TESTE, SRK_PROJETO, ID_PROJETO, RESUMO, DESCRICAO, PROJETO ) SELECT seq_TESTE.NEXTVAL, SRK_PROJETO, ID_PROJETO, RESUMO, DESCRICAO, PROJETO FROM dim_projeto where -->CONDIÇÃO<--;
Agora fica quase impossível ajudar sem você posta seu código, se for postar use a tag cod "</>", ou o erro que esta retornando.
GOSTEI 0