Perguntas Procedure
- danielzv
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 91
- Obrigados Recebidos: 0
9 anos 4 meses atrás #28605
por danielzv
Bom dia pessoal
Estou fazendo alguns testes com procedure, e me deparei com um problema.
A procedure deve criar uma tabela(copia) a partir de uma tabela já existente no BD, após a criação preciso contar os registros das duas tabelas para ver se a cópia ficou integra, porém ao executar a procedure, não achei uma forma de aguardar a criação da tabela para prosseguir com a contagem, assim gera erro, dizendo que a tabela que esta sendo criada não existe no momento da contagem.
Segue exemplo:
CREATE OR REPLACE PROCEDURE SP_TESTE
AS
v_OutputStr VARCHAR2(15);
v_OutputStr2 VARCHAR2(15);
BEGIN
EXECUTE IMMEDIATE ('CREATE TABLE SB1_TESTE TABLESPACE TESTE AS SELECT * FROM SB1010');
SELECT count(*) INTO v_OutputStr FROM SB1010;
SELECT count(*) INTO v_OutputStr2 FROM SB1_TESTE;
DBMS_OUTPUT.PUT_LINE(v_OutputStr);
DBMS_OUTPUT.PUT_LINE(v_OutputStr2);
END;
OBS: Se deixar apenas a tabela padrão ele conclui a criação e retorna o tamanho da mesma.
Alguém sabe se é possivel fazer com que execute a contagem apenas após a conclusão do Create?
Att
Estou fazendo alguns testes com procedure, e me deparei com um problema.
A procedure deve criar uma tabela(copia) a partir de uma tabela já existente no BD, após a criação preciso contar os registros das duas tabelas para ver se a cópia ficou integra, porém ao executar a procedure, não achei uma forma de aguardar a criação da tabela para prosseguir com a contagem, assim gera erro, dizendo que a tabela que esta sendo criada não existe no momento da contagem.
Segue exemplo:
CREATE OR REPLACE PROCEDURE SP_TESTE
AS
v_OutputStr VARCHAR2(15);
v_OutputStr2 VARCHAR2(15);
BEGIN
EXECUTE IMMEDIATE ('CREATE TABLE SB1_TESTE TABLESPACE TESTE AS SELECT * FROM SB1010');
SELECT count(*) INTO v_OutputStr FROM SB1010;
SELECT count(*) INTO v_OutputStr2 FROM SB1_TESTE;
DBMS_OUTPUT.PUT_LINE(v_OutputStr);
DBMS_OUTPUT.PUT_LINE(v_OutputStr2);
END;
OBS: Se deixar apenas a tabela padrão ele conclui a criação e retorna o tamanho da mesma.
Alguém sabe se é possivel fazer com que execute a contagem apenas após a conclusão do Create?
Att
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.079 segundos