Jump to content
andrediasferreira

[Resolvido] Criando uma procedure

Recommended Posts

Olá pessoal,

estou com uma dúvida ao criar uma procedure, vou descrever abaixo o codigo que eu fiz e depois a procedure que eu crie.

Ela continua me dando erro de invalido.

 

DECLARE
  CURSOR ADF_JOB IS
        SELECT JOB, FAILURES, WHAT
        FROM dba_jobs
        WHERE BROKEN = 'Y'
        AND FAILURES > 0
        ORDER BY JOB;

BEGIN
   EXECUTE IMMEDIATE 'TRUNCATE TABLE ADF_EMAIL_JOB_TMP';
  BEGIN
          FOR CUR2 IN ADF_JOB LOOP
          INSERT INTO ADF_EMAIL_JOB_TMP VALUES CUR2;
          END LOOP;
          COMMIT;
  END;
END; 

 

Funciona perfeito.

 

CREATE OR REPLACE PROCEDURE PR_TESTE AS
  CURSOR ADF_JOB IS
        SELECT JOB, FAILURES, WHAT
        FROM dba_jobs
        WHERE BROKEN = 'Y'
        AND FAILURES > 0
        ORDER BY JOB;

BEGIN
   EXECUTE IMMEDIATE 'TRUNCATE TABLE ADF_EMAIL_JOB_TMP';
  BEGIN
          FOR CUR2 IN ADF_JOB LOOP
          INSERT INTO ADF_EMAIL_JOB_TMP VALUES CUR2;
          END LOOP;
          COMMIT;
  END;
END; 

 

estar dando erro invalido, quem poder me ajudar eu agradeço muito.

Share this post


Link to post
Share on other sites

Bom dia, segue o erro

 

ORA-06550: linha 2, coluna 7:
PLS-00905: object WMAS.PR_TESTE is invalid
ORA-06550: linha 2, coluna 7:
PL/SQL: Statement ignored

 

Eu só quero colocar os job que estão com erros numa tabela temporaria, para posteriormente mandar por email.

Share this post


Link to post
Share on other sites

Você usa alguma ferramenta do tipo sql developer ?

 

A procedure deve ter ficado com erro , compila no programa que ele gera o erro de fato.

Share this post


Link to post
Share on other sites

Ache e compile a sp , verá o erro.

Share this post


Link to post
Share on other sites

Boa Tarde Motta,

 

está dando esse erro:

 

Variables
Object type = PROCEDURE
Object owner = WMAS
Object name = PR_TESTE

 

Type PROCEDURE
Owner WMAS
Name PR_TESTE
Line Error text
4 PL/SQL: ORA-00942: tabela ou visualização não existe
3 PL/SQL: SQL Statement ignored
13 PLS-00364: loop index variable 'CUR2' use is invalid
13 PL/SQL: ORA-00904: "CUR2": identificador inválido
13 PL/SQL: SQL Statement ignored

Share this post


Link to post
Share on other sites

Pode ser um problema de permissão na tabela dba_jobs , veja isto.

 

Share this post


Link to post
Share on other sites

Explicando , o bloco plsql roda com a permissão do user logado a sp com a permissão dela.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By redeatual
      Fatal error: Uncaught Error: Call to undefined function eregi() in /home2/opovo/public_html/opovoradioradio.com.br/redirect.php:10 Stack trace: #0 /home2/opovo10/public_html/opovoradio.com.br/scripts/chama_config.php(11): include() #1 /home2/opovo10/public_html/opovoradio.com.br/index.php(6): include('/home2/opovo10...') #2 {main} thrown in /home2/opovo10/public_html/opovoradio.com.br/redirect.php on line 10
    • By GustavoBeck
      Está dando um erro no meu programa que é a base para criar um jogo da Forca, mas eu não consigo arrumar, e esse erro só acontece quando eu junto o main,forca.h e forca.c em um projeto .cbp, quando eu executo os 3 arquivos sozinhos funciona, mas preciso entregar para trabalho e preciso que funcione com o arquivo .cbp de projeto. Alguem consegue me ajudar a resolver?Agradeço muito! Esse é o erro: "error: dereferencing pointer to incomplete type 'NoSecreto {aka struct noSecreto}' "

      Main:
      #include <stdio.h> #include <stdlib.h> #include <string.h> #include "forca.h" void exibe() { printf("Desenvolvido por:\nGustavo Felipe Beck 18133"); printf("\nLucas Miranda 18567\n\n"); } int main() { exibe(); NoSecreto * lstSecreta = inicializaListaSecreta(); NoSecreto * sorteada; NoSecreto * usadas = inicializaListaSecreta(); lstSecreta = carregaListaArquivo(lstSecreta,"palavras.dat"); imprimeListaSecreta(lstSecreta); do{ system("cls"); exibe(); imprimeListaSecreta(lstSecreta); sorteada= sorteiaPalavra(lstSecreta,usadas); if(sorteada!=NULL){ printf("%s\n", sorteada->palavra); lstSecreta = retiraUmElemento(lstSecreta,sorteada->palavra); }else{ printf("Nao existe palavra disponivel!\n\n"); } }while(getchar()!='f'); NoL * letras = inicializaListaSecreta(); return 0; } Forca.c:
       
      #include <stdio.h> #include <string.h> #include "forca.h" struct noSecreto { int status; char palavra[31]; char assunto[100]; int num; struct noSecreto * prox; }; struct noLetras { char letra; int estado; struct noSecreto * proximo; }; NoSecreto * inicializaListaSecreta() { return NULL; } NoSecreto * inserePalavraSecreta(NoSecreto * l,char word[31],char subject[100]) { NoSecreto * novo; novo = (NoSecreto *) malloc(sizeof(NoSecreto)); novo->status = 0; strcpy(novo->assunto,subject); strcpy(novo->palavra,word); novo->prox = l; l = novo; return l; } void imprimeListaSecreta(NoSecreto *l) { NoSecreto * p; for (p = l; p!=NULL; p=p->prox) { printf("%0d | %30s | %30s | %d\n", p->status,p->palavra,p->assunto,p->num); } } NoSecreto * carregaListaArquivo(NoSecreto * l, char nomeArq[255]) { const char ch[2]=";"; char * token; int status; char palavra[31]; char assunto[101]; char * linha[1024]; int n=0; FILE * fWords; fWords = fopen(nomeArq,"r"); if(fWords==NULL){ printf("Falha ao acessar base de dados!!!\n\n"); exit(0); } while(fgets(linha,1024,fWords)) { token = strtok(linha,ch); if(token!=NULL) { strcpy(palavra,token); } token=strtok(NULL,ch); if(token!=NULL) { strcpy(assunto,token); } l = inserePalavraSecreta(l,palavra, assunto); l->num=n; n++; } fclose(fWords); return l; } int quantos(NoSecreto * l) { NoSecreto * p; int y=0; for (p = l; p!=NULL; p=p->prox) { y++; } return y; } int temPalavraNaoUsada(NoSecreto *l) { NoSecreto *p; for(p=l;p!=NULL;p=p->prox){ if(p->status==0) return 1; } return 0; } NoSecreto * sorteiaPalavra(NoSecreto *l,NoSecreto *l2) { int tam = quantos(l); int aleatorio=0; int tentativas = 0; NoSecreto * p; while(temPalavraNaoUsada(l)){ aleatorio = geraAleatorio(tam); p = retornaPalavraPos(l,aleatorio); if(p->status==0){ { p->status = 1; return p; l2 = inserePalavraSecreta(p,p->palavra,p->assunto); } } } return NULL; } NoSecreto * retornaPalavraPos(NoSecreto *l, int pos) { int n=1; NoSecreto *p; for(p=l; p!=NULL; p=p->prox) { if(n==pos) break; n++; } return p; } int geraAleatorio(int maximo) { time_t t; int n=0; srand((unsigned) time(&t)); n = (rand() % maximo)+1; return n; } NoSecreto * retiraUmElemento(NoSecreto * l, char palavra[31]) { NoSecreto * ant = NULL; NoSecreto * p = l; while(p != NULL && p->palavra != palavra) { ant = p; p = p->prox; } if(ant == NULL) { l = p->prox; } else { ant->prox = p->prox; } free(p); return l; } /*NoL * crialetras(NoSecreto * l) { NoSecreto * u = escolhealeatorio(l); }*/  
    • By Jack Oliveira
      Boa tarde
      @Omar~
      @Motta
      Estou tendo um problema em meu código
      já revirei tudo nele mudei de tudo o jeito mais nao consegui achar o problema que esta afetando ao abrir  a listagem ou seja as informações das empresas cadatradas
      Este é o código PHP
       
      <?php ini_set('display_errors', 0 ); error_reporting(0); header('Access-Control-Allow-Origin: *'); require_once ('../database/config.php'); require_once ('../database/config.database.php'); require_once ('../database/config.session.php'); require_once ('../includes/funcoes.php'); require_once('Mod/classe_url.php'); if (ModoManutencao()) { header("Location: manutencao/"); } $ID = get('id'); $Query = DBRead('cidade','*',"WHERE id = '{$ID}'"); if (is_array($Query)) { foreach ($Query as $cidade) { $IDCIDADE = $cidade['id']; $TituloCidade = $cidade['titulo']; $StatusCidade = $cidade['status']; $ImagemCidade = $cidade['imagem']; $CategoriaCidade = $cidade['c_estado_pais']; //TIRANDO CARACTERES $StringTitulo = $cidade['titulo']; $StringTitulo = encodeSEOString($StringTitulo); } } $QueryCat = DBRead('c_cidade','*',"WHERE id = '{$CategoriaCidade}'"); if (is_array($QueryCat)) { foreach ($QueryCat as $c_cidade) { $Categoria = $c_cidade['categoria']; $Estado = $c_cidade['estado']; $Pais = $c_cidade['pais']; } } $Query = DBRead('listagem','*',"WHERE id_cidade = '{$IDCIDADE}' AND id='{$ID}' AND status = 'S' AND indexar = 'S'"); if (is_array($Query)) { foreach ($Query as $dados) { $id = $dados['id']; $id_cidade = $dados['id_cidade']; $status = $dados['status']; $visitas = $dados['visitas']; $id_categoria = $dados['id_categoria']; $id_destaque = $dados['id_destaque']; $planos = $dados['planos']; $fan_pages = $dados['fan_pages']; //$ativar_galeria = $dados['ativar_galeria']; $periodo = $dados['periodo']; $indexar = $dados['indexar']; $nova_guia = $dados['nova_guia']; $titulo = $dados['titulo']; $telefone = $dados['telefone']; $telefone2 = $dados['telefone2']; $endereco = $dados['endereco']; $lat = $dados['lat']; $lng = $dados['lng']; $type = $dados['type']; $email = $dados['email']; $imagem = $dados['imagem']; $celular = $dados['celular']; $whatsapp = $dados['whatsapp']; $cidade = $dados['cidade']; $facebook = $dados['facebook']; $instagram = $dados['instagram']; $twitter = $dados['twitter']; $face_video = $dados['face_video']; $you_video = $dados['you_video']; $status_video = $dados['status_video']; $site = $dados['site']; $app = $dados['app']; $data1 = $dados['data1']; $data2 = $dados['data2']; $segunda = $dados['segunda']; $terca = $dados['terca']; $quarta = $dados['quarta']; $quinta = $dados['quinta']; $sexta = $dados['sexta']; $sabado = $dados['sabado']; $domingo = $dados['domingo']; $representante = $dados['representante']; $frase = $dados['frase']; $palavra_chave = $dados['palavra_chave']; $sobre_empresa = $dados['sobre_empresa']; $login = $dados['login']; $senha = $dados['senha']; //CONTADOR DE VISITAS //Busca na tabela o numero de vezes que a página ja foi visitada $busca = "Select * FROM listagem WHERE id_cidade = '{$IDCIDADE}' AND id = '$id'"; $exe = mysqli_query($conn, $busca); $resultado = (mysqli_fetch_array($exe)); $numero = $resultado['visitas']; //Pega o numero de visistas que consta na tabela, adiciona mais um e atualiza //$visitantes = $numero + 1; $altera = "UPDATE listagem SET visitas = visitas+1 WHERE id_cidade = '{$IDCIDADE}' AND id = '$id'"; $exe1 = mysqli_query($conn, $altera); //Faz uma nova busca e retorna o numero de visitas depois da atualização $exe = mysqli_query($conn, $busca); $total = (mysqli_fetch_array($exe)); $visitas = $total['visitas']; // Dinifir ECHO pra teste --> echo "Visitas: $visitas"; //FIM CONTADOR //FORMATANDO PARA USO DO CELULAR $str = $dados["celular"]; $str = str_replace(".", "", $str); $str = str_replace("(", "", $str); $str = str_replace(")", "", $str); $str = str_replace("-", "", $str); $str = str_replace(" ", "", $str); //FORMATANDO PARA USO DO TELEFONE $str2 = $dados["telefone"]; $str2 = str_replace(".", "", $str2); $str2 = str_replace("(", "", $str2); $str2 = str_replace(")", "", $str2); $str2 = str_replace("-", "", $str2); $str2 = str_replace(" ", "", $str2); //FORMATANDO PARA USO DO TELEFONE2 $str4 = $dados["telefone2"]; $str4 = str_replace(".", "", $str4); $str4 = str_replace("(", "", $str4); $str4 = str_replace(")", "", $str4); $str4 = str_replace("-", "", $str4); $str4 = str_replace(" ", "", $str4); //FORMATANDO PARA USO DO WHATSAPP $str3 = $dados["whatsapp"]; $str3 = str_replace(".", "", $str3); $str3 = str_replace("(", "", $str3); $str3 = str_replace(")", "", $str3); $str3 = str_replace("-", "", $str3); $str3 = str_replace(" ", "", $str3); $strtitulo = $dados['titulo']; $strtitulo = mb_strtoupper($strtitulo, 'UTF-8'); } }else{ header('Location: job_buscar_grid'); } ?> No HTACCESS esta assim
      DirectoryIndex index.php RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z,0-9,A-Z,_-]+)\/?$ index.php?id=$1 [NC,L] RewriteRule ^cid\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ home.php?nome=$1&id=$2 [NC,L] RewriteRule ^job\/([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ job_detahes.php?nome=$1&id=$2 [NC,L]  
      Quando eu clico para listar as informações da empresa me da o seguinte ERRO
       
      Not Found
      The requested URL was not found on this server.
      Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
       
       
      Poderia me apontar onde esta sendo o erro?
    • By mamotinho
      Oii, gostaria de pedi a  ajuda de vocês que entende melhor de javascript, estou tentando clica em um item no meu site para ser exibido sobre a página uma div que está escondido porém está dando erro no javascript, segue abaixo o erro e o código JS utilizado.
       
      cabaldark.js:25 Uncaught TypeError: Cannot read property 'style' of null at abrirDesc (cabaldark.js:25) at HTMLDivElement.onclick (CashIndex.php?v1=1&v2=C13FC8F97845403A9C62BB277C614590:52) abrirDesc @ cabaldark.js:25 onclick @ CashIndex.php?v1=1&v2=C13FC8F97845403A9C62BB277C614590:52
      AQUI É O CÓDIGO JS QUE ESTÀ A FUNÇÃO.

       
      function abrirSub(id) { if(document.getElementById('sub'+id).style.display=="block"){ var test = document.getElementsByClassName("submenu"); for(i = 0; i < test.length; i++){ document.getElementsByClassName('submenu')[i].style.display='none'; } }else{ var test = document.getElementsByClassName("submenu"); for(i = 0; i < test.length; i++){ document.getElementsByClassName('submenu')[i].style.display='none'; } document.getElementById('sub'+id).style.display="block"; } } function mensagemClose(){ document.getElementsByClassName('mensagem')[0].style.display='none'; } function detalhesClose(){ var test = document.getElementsByClassName("detalhes"); for(i = 0; i < test.length; i++){ document.getElementsByClassName('detalhes')[i].style.display='none'; } } function abrirDesc(id){ if(document.getElementById('detalhes'+id).style.display=="block"){ var test = document.getElementsByClassName("detalhes"); for(i = 0; i < test.length; i++){ document.getElementsByClassName('detalhes')[i].style.display='none'; } }else{ var test = document.getElementsByClassName("detalhes"); for(i = 0; i < test.length; i++){ document.getElementsByClassName('detalhes')[i].style.display='none'; } document.getElementById('detalhes'+id).style.display="block"; } }  

    • By robmig
      Olá amigos, sempre recorro a vocês AQUI dentro do fórum e sempre encontro boas referencias e dicas!
      Estou com um problema dentro do campo editar CPF.
       
      O que ocorre é:
       
      Quando acessado de dispositivos móveis, ao editar os números fica invisível a edição dos mesmos! o MAIS INTRIGANTE É QUE EM AGUNS CELULARES DÁ OUTROS NÃO DA!
      Já ao acessar o mesmo campo em Computadores a edição ocorre em perfeita ordem!
       
      O que pode ser?  EXISTE UMA EXPLICAÇÃO E CORREÇÃO?
       
      Segue algumas linhas do meu código:
       
      ===============MEU CÓDIGO ORIGINAL ===============
       
      <div class="form-group">
      <label class="col-md-2 control-label">CPF Titular</label>
      <div class="col-md-10">
      <input name="banco_cpf" maxlength="14" placeholder="000.000.000-00" id="cpf" value="<?php echo $dados_usuario[banco_cpf]; ?>" class="form-control" placeholder="CPF" required>
      </div>
      </div>
       
      ===============EDITADO COM UMA DICA: type="tel"===============
       
      <div class="form-group">
      <label class="col-md-2 control-label">CPF Titular</label>
      <div class="col-md-10">
      <input type="tel" name="banco_cpf" maxlength="11" placeholder="000.000.000-00" id="cpf" value="<?php echo $dados_usuario[banco_cpf]; ?>" class="form-control" placeholder="Só números" required>
      </div>
      </div>
       
      ===============
       
      }).trigger('focusout');
      $("#cpf").mask("999.999.999-99");
      $("#rg").mask("99.999.999-*");
      });
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.