Pessoal, preciso fazer um script e estou utilizando o PL/SQL - Command Window para validar o script, posteriormente devo rodar pelo agendador de tarefas e nunca mais devo mexer. Isso porque ele vai conter a inteligência que preciso e ficarei livre de toda hora pesquisar se a tabelinha que alguém deveria ter criado foi feita de verdade.
Então, verifica se a tabela existe, se existir deleta e cria uma nova, se não deixa a antiga como está.
Segue o que fiz...
DECLARE
QTD_REG NUMBER(9) :=0;
BEGIN
SELECT COUNT(*)*1
INTO QTD_REG
FROM TESTE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
QTD_REG :=0;
END;
BEGIN
IF QTD_REG > 6 THEN
BEGIN
DROP TABLE TESTE2;
CREATE TABLE TESTE2 AS
SELECT *
FROM TESTE;
END;
END IF;
END;
EXIT;
/
Isso está me gerando o seguinte erro:
ORA-06550: line 12, column 1:
PLS-00103: Encountered the symbol "BEGIN"
ORA-06550: line 15, column 5:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
Pergunta
FALL
Pessoal, preciso fazer um script e estou utilizando o PL/SQL - Command Window para validar o script, posteriormente devo rodar pelo agendador de tarefas e nunca mais devo mexer. Isso porque ele vai conter a inteligência que preciso e ficarei livre de toda hora pesquisar se a tabelinha que alguém deveria ter criado foi feita de verdade.
Então, verifica se a tabela existe, se existir deleta e cria uma nova, se não deixa a antiga como está.
Segue o que fiz...
DECLARE
QTD_REG NUMBER(9) :=0;
BEGIN
SELECT COUNT(*)*1
INTO QTD_REG
FROM TESTE;
EXCEPTION
WHEN NO_DATA_FOUND THEN
QTD_REG :=0;
END;
BEGIN
IF QTD_REG > 6 THEN
BEGIN
DROP TABLE TESTE2;
CREATE TABLE TESTE2 AS
SELECT *
FROM TESTE;
END;
END IF;
END;
EXIT;
/
Isso está me gerando o seguinte erro:
ORA-06550: line 12, column 1:
PLS-00103: Encountered the symbol "BEGIN"
ORA-06550: line 15, column 5:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier>
É com vocês pessoal...
Editado por FALLLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.