Procedure PL SQL

SQL

Oracle

22/07/2015

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;
Daniel

Daniel

Curtidas 0

Melhor post

Jothaz

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:

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

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!!!
GOSTEI 0
Jothaz

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:

    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
POSTAR