Jump to content

Search the Community

Showing results for tags 'Procedure'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 30 results

  1. Felipe_N22

    Rotina DELETE MySQL

    Pessoal, como que eu crio uma rotina no MySQL para efetuar delete de registros inseridos nos últimos 30 dias, e fazer com que esse procedimento rode todos os dias automaticamente em determinado horário?
  2. johnklo

    Criar uma "procedure"

    COM BASE NA TABELA HR DO ORACLE Preciso criar uma sub-rotina (procedure) que imprima na tela o número de funcionários (employees) agrupados por departamentos (department_id). Deve-se ordenar a saída em ordem decrescente pela quantidade de departamentos. Pode-se utilizar qualquer forma de cursor para imprimir o resultado.
  3. Andinho Luiz

    Erro com Procedure no MySQL

    Boa tarde a todos, Estou tentando criar uma Procedure no MySQL e tenho esta tabela "Cliente". CREATE TABLE IF NOT EXISTS cliente ( id_cliente INT(5) AUTO_INCREMENT PRIMARY KEY, tipo CHAR(1) NOT NULL, rSocialNome VARCHAR(20) NOT NULL, cnpjCPF VARCHAR(30) NOT NULL, ieRG VARCHAR(30), contato VARCHAR(50), email VARCHAR(30), site VARCHAR(30), dataCadastro DATE, usuario VARCHAR(30) )ENGINE=MyISAM; Tenho outra tabela que é a "Endereço" CREATE TABLE IF NOT EXISTS `endereco` ( `id_endereco` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `id_cliente` INT(11) NOT NULL, `logradouro` VARCHAR(20) NOT NULL , `rua` VARCHAR(25) NOT NULL , `numero` INT(11) NOT NULL , `complemento` VARCHAR(40) , `bairro` VARCHAR(40) NOT NULL , `cidade` VARCHAR(40) NOT NULL , `estado` VARCHAR(40) NOT NULL , `cep` VARCHAR(9) NOT NULL , PRIMARY KEY (`id_endereco`), constraint fk_endereco_cliente FOREIGN KEY (id_cliente) REFERENCES cliente (id_cliente) ) ENGINE=MyISAM Para fazer o insert nas duas tabelas eu criei uma procedure, podem quando tento adicionar o MySQL da erro "ALERTA: Erro ao inserir na tabela de pessoas" DELIMITER $$ CREATE DEFINER=`dotinfoc`@`localhost` PROCEDURE `cad_cliente`( IN c_tipo CHAR(1), IN c_rSocialNome VARCHAR(20), IN c_cnpjCPF VARCHAR(30), IN c_ieRG VARCHAR(30), IN c_contato VARCHAR(50), IN c_email VARCHAR(30), IN c_site VARCHAR(30), IN c_logradouro VARCHAR(20), IN c_rua VARCHAR(25), IN c_numero INT(11) , IN c_complemento VARCHAR(40) , IN c_bairro VARCHAR(40), IN c_cidade VARCHAR(40), IN c_estado VARCHAR(40), IN c_cep VARCHAR(9) ) BEGIN DECLARE msg VARCHAR(1000) DEFAULT "sem mensagem"; DECLARE excecao SMALLINT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1; START TRANSACTION; INSERT INTO cliente (tipo, rSocialNome, cnpjCPF, ieRG, contato, email, site, dataCadastro, usuario) VALUES (c_tipo, c_rSocialNome, c_cnpjCPF, c_ieRG, c_contato, c_email, c_site); IF excecao = 1 THEN SET msg = "ALERTA: Erro ao inserir na tabela de pessoas"; ROLLBACK; ELSE SELECT DISTINCT LAST_INSERT_ID() INTO @id_cliente FROM cliente; IF excecao = 1 THEN SET msg = "ALERTA: Erro ao buscar o ultimo ID inserido em clientes"; ROLLBACK; ELSE INSERT INTO endereco(id_cliente, logradouro, rua, numero, complemento, bairro, cidade, estado, cep) values(@id_cliente, c_logradouro, c_rua, c_numero, c_complemento, c_bairro, c_cidade, c_estado, c_cep); IF excecao = 1 THEN SET msg = "ALERTA: Erro ao inserir na tabela de Endereco"; ROLLBACK; END IF; END IF; END IF; IF excecao <> 1 THEN COMMIT; SET msg = "ALERTA: Registro Incluido com sucesso"; END IF; SELECT msg AS msg; END$$ DELIMITER ;
  4. Olá, sou iniciante e gostaria de saber como eu posso criar uma consulta e em seguida passar o valor da consulta por ifs veja um exemplo de como eu queria usar, irei fazer como seria em PHP: $consulta = mssql_query("select * from Account.dbo.cabal_auth_table where Login=1"); $count = mssql_num_rows($consulta); if($count>=1){ while($row=mssql_fetch_object($consulta)){ mssql_query("update cabalcash.dbo.cashaccount set cash=cash+40 where UserNum='".$row->UserNum."'"); } } Queria transformar isso em Store Procedure para eu criar uma JOB
  5. Olá, quando tento executar a trigger abaixo, ele me retorna Erro(56,16): PLS-00306: wrong number or types of arguments in call to '||' create or replace TRIGGER API_SIM_PF_ATUALIZA_DENTALIS BEFORE INSERT OR UPDATE ON PESSOA_FISICA FOR EACH ROW DECLARE type t_num is table of number; DS_EMAIL_W t_num; TELEFONE_RES_W t_num; TELEFONE_COM_W t_num; ESTADO_CIVIL_W VARCHAR2(255); ENDERECO_RES_W t_num; NUMERO_W t_num; BAIRRO_RES_W t_num; COMPLEMENTO_RES_W t_num; CIDADE_RES_W t_num; CEP_RES_W t_num; ENDERECO_COM_W t_num; NUMERO_COM_W t_num; BAIRRO_COM_W t_num; COMPLEMENTO_COM_W t_num; CIDADE_COM_W t_num; CEP_COM_W t_num; PROFISSIONAL_W VARCHAR2(255); SEXO_W VARCHAR2(255); DT_NASCIMENTO_W t_num; BEGIN SELECT DISTINCT CP.DS_EMAIL, ('('||nr_ddd_telefone||')'||nr_telefone), ('('||nr_ddd_telefone||')'||nr_telefone), (SELECT CP1.DS_ENDERECO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), (SELECT CP1.NR_ENDERECO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), (SELECT CP1.DS_BAIRRO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), (SELECT CP1.DS_COMPLEMENTO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), (SELECT CP1.DS_MUNICIPIO FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), (SELECT CP1.CD_CEP FROM COMPL_PESSOA_FISICA CP1 WHERE CP1.CD_PESSOA_FISICA = :NEW.CD_PESSOA_FISICA AND CP1.IE_TIPO_COMPLEMENTO = 1), TO_CHAR(:NEW.DT_NASCIMENTO,'"YYYY-MM-DD HH24:MI:SS') BULK COLLECT INTO DS_EMAIL_W,TELEFONE_RES_W,TELEFONE_COM_W,ENDERECO_RES_W,NUMERO_W,BAIRRO_RES_W,COMPLEMENTO_RES_W,CIDADE_RES_W,CEP_RES_W,/*ENDERECO_COM_W,NUMERO_COM_W,BAIRRO_COM_W,COMPLEMENTO_COM_W, CIDADE_COM_W,CEP_COM_W,*/DT_NASCIMENTO_W FROM TASY.COMPL_PESSOA_FISICA CP WHERE CP.CD_PESSOA_FISICA =:NEW.CD_PESSOA_FISICA AND CP.IE_TIPO_COMPLEMENTO = 1; SELECT V.DS_VALOR_DOMINIO INTO ESTADO_CIVIL_W FROM VALOR_DOMINIO V WHERE CD_DOMINIO = 5 AND V.VL_DOMINIO = :NEW.IE_ESTADO_CIVIL; SELECT CA.DS_CARGO INTO PROFISSIONAL_W FROM CARGO CA WHERE CA.CD_CARGO = :NEW.CD_CARGO; SELECT V.DS_VALOR_DOMINIO INTO SEXO_W FROM VALOR_DOMINIO V WHERE CD_DOMINIO = 4 AND V.VL_DOMINIO = :NEW.IE_SEXO; BEGIN SEND_DB_REQUST_PROC ('http://628186fc.ngrok.io/DentalisIntegration-1.0.0/dentalis/createuser', '{ "nome":' || :NEW.NM_PESSOA_FISICA ||','|| '"codigo_externo":' || :NEW.CD_PESSOA_FISICA ||','|| '"codigo_plano":' || 694 ||','|| '"matricula":' || :NEW.CD_PESSOA_FISICA || ',' || '"cpf":' || :NEW.NR_CPF ||','|| '"rg":' || :NEW.NR_IDENTIDADE || ',' || '"email":' || DS_EMAIL_W || ',' || '"telefone_res":' || TELEFONE_RES_W ||','|| '"telefone_com":' || TELEFONE_COM_W || ',' || '"celular":' || :NEW.NR_TELEFONE_CELULAR || ',' || '"observacao":' || :NEW.DS_OBSERVACAO || ',' || '"estado_civil":' || ESTADO_CIVIL_W || ',' || '"profissao":' || PROFISSIONAL_W || ',' || '"sexo":' || SEXO_W || ',' || '"data_nascimento":' || DT_NASCIMENTO_W || ',' || '"endereco_res":' || ENDERECO_RES_W || ',' || '"numero_res":' || NUMERO_W || ',' || '"bairro_res":' || BAIRRO_RES_W || ',' || '"complemento_res":' || COMPLEMENTO_RES_W || ',' || '"cidade_res":' || CIDADE_RES_W || ',' || '"cep_res":' || CEP_RES_W || ',' || '"endereco_com": "",' || '"numero_com":"",' || '"bairro_com":"",' || '"complemento_com":"",' || '"cidade_com":"",' || '"cep_com":""' || '}'); exception when others then raise_application_error(-20000,'Erro: '|| sqlerrm); END; END; Alguém sabe o que pode ser? Obrigado desde já pela atenção!
  6. Olá. Estou tendo problemas com uma procedure na qual dentro dela existe uma função que busca informações de um XML. Quando executo esta função dentro do Studio Management ele funciona, só que se executo no reporting service ou diretamente no ERP o SQL Server retorna o erro abaixo: Falha em SELECT porque as seguintes opções SET têm configurações incorretas: 'ARITHBORT'. Verifique se as opções SET estão corretas para uso com exibições indexadas e/ou índices em colunas computadas e/ou índices filtrados e/ou notificações de consulta e/ou métodos de tipo de XML e/ou operações de índice espacial. Tanto na procedure quanto nas functions eu setei as seguintes options: SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET ARITHABORT ON SET CONCAT_NULL_YIELDS_NULL ON SET NUMERIC_ROUNDABORT OFF SET QUOTED_IDENTIFIER ON Se alguém tiver alguma ideia de como corrigir isso por gentileza me dê uma luz. Obrigado!
  7. Olá, Estou com a seguinte dúvida: Na criação de minha procedure, os parâmetros de Data Inicial e Final não podem vir nulos. Eu criei a verificação abaixo para isso: " IF @DT_INICIAL AND @DT_FINAL IS NULL BEGIN RAISERROR('ERRO = DATA INICIAL E FINAL NAO INFORMADAS.',1,1) END; " Porém, ao meu ver, é uma verificação desnecessária, ou seja, se eu criar os parâmetros @DT_INICIAL e @DT_FINAL como NOT NULL, o próprio SQL irá retornar o erro dizendo que o parâmetro é obrigatório. Mas, não sei como realizar a criação desses parâmetros como NOT NULL, ao realizar o código abaixo, o SQL retorna o erro (também abaixo): ( DECLARE @DT_INICIAL DATE NOT NULL, DECLARE @DT_FINAL DATE NOT NULL ) Retorno do SQL: Msg 11555, Level 15, State 1, Procedure PRC_MTCORP_MODU_ABAS_BOBI_QUAL_CONS, Line 29 O parâmetro '@DATA_INICIAL' foi declarado como NOT NULL. Os parâmetros NOT NULL têm suporte apenas com procedimentos armazenados compilados de forma nativa. Pergunta: Existe meios de se criar o parâmetro como NOT NULL? Detalhe: Criando o parâmetro sem nenhuma informação, ou seja, DECLARE "@DT_INICIAL DATE", na execução o SQL aceita o parâmetro como NULL, sendo necessária minha verificação inicial. Abraço.
  8. Preciso desenvolver um sistema que automatiza o atendimento a alunos feitos por coordenadores. Quando algum aluno chegar na secretária e pedir para ser atendido por algum coordenador, ela vai cadastrar no sistema essa solicitação de atendimento. Este aluno entrara na fila do referido coordenador. Então fiz duas tabelas. "Fila" que é a da secretária que vai cadastrar e a "Coordenador" que é as informações dele. o que quero é passar somente as seguintes informações da fila para o coordenador: Nome, Curso, se já é aluno, status e data/hora. até agora está desse jeito, e não sei como fazer para passar essas informações automaticamente para ele, alguém pode me ajudar? Estou usando o Workbench. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; CREATE SCHEMA IF NOT EXISTS `at_automatizado` DEFAULT CHARACTER SET utf8 ; USE `at_automatizado` ; -- ----------------------------------------------------- -- Table `at_automatizado`.`coordenador` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `at_automatizado`.`coordenador` ( `codigo` INT NOT NULL AUTO_INCREMENT, `login` VARCHAR(45) NULL, `senha` VARCHAR(45) NULL, `nome_coordenador` VARCHAR(100) NULL, `ramal` VARCHAR(9) NULL, `curso` VARCHAR(45) NULL, PRIMARY KEY (`codigo`)) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `at_automatizado`.`fila` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `at_automatizado`.`fila` ( `codigo` INT NOT NULL AUTO_INCREMENT, `coordenador_codigo` INT NOT NULL, `nome_coordenador` VARCHAR(100) NULL, `nome_aluno` VARCHAR(100) NULL, `telefone` VARCHAR(14) NULL, `curso` VARCHAR(100) NULL, `ja_e_aluno` ENUM('Sim', 'Não') NULL, `status` ENUM('Já atendido', 'Não atendido') NULL, `data_e_hora` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`codigo`), INDEX `fk_fila_coordenador_idx` (`coordenador_codigo` ASC), CONSTRAINT `fk_fila_coordenador` FOREIGN KEY (`coordenador_codigo`) REFERENCES `at_automatizado`.`coordenador` (`codigo`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
  9. MauVirtual

    Usar Trigger? Procedure? Ambas?

    Pessoal, estou perdido tenho a seguinte tarefa abaixo, mas usando a trigger não posso dar o select ela nao aceita, e não sei se uso procedure, triger, ambas, sei que essa parte deveria ser feito pela aplicação, mas o professor quer essa apresentação somente em BD. compare se a data e hora da viagem e o motorista e viatura estão disponíveis antes de incluir no banco de dados, Entao digamos que a viatura Gol tem uma viagem com o motorista Carlos dia 22/03/2018 as 11:00 com termino no mesmo dia porem na hora 17:00 e suponhamos que alguem quera cadastra a viagem com o mesmo motorista a mesma viatura no mesmo dia porem no horario do 12:00, não poderia ser cadastrado já que a viatura e motorista estariam ocupados. Estão preci ser checado se a viatura está disponivel, se o motorista está disponivel em um intervalo de dia e hora, pois poderam acontecer viagens de mais de um dia. Abaixo segue meu código sou bem iniciante e toda ajuda seria muito bem vinda. Já criei um posto sobre isso, mas mudei a tabela e naquele post não consegui resolver agredeço a ajuda, batendo o desespero já CREATE TABLE DADOSPESSOAS( IDDADOSPESSOAS INT PRIMARY KEY AUTO_INCREMENT, NOME VARCHAR(45) NOT NULL, EMAIL VARCHAR(45) UNIQUE NOT NULL, NIVEL CHAR(1) NOT NULL, DATANASCIMENTO DATE NOT NULL, SEXO CHAR(1) NOT NULL, CPF CHAR(14) UNIQUE NOT NULL, CELULAR VARCHAR(14) UNIQUE NOT NULL, CEP CHAR (9) NOT NULL, RUA VARCHAR(30) NOT NULL, NUMERO VARCHAR(8) NOT NULL, BAIRRO VARCHAR(25) NOT NULL, CIDADE VARCHAR(40) NOT NULL, ESTADO CHAR(2) NOT NULL ); CREATE TABLE MOTORISTA ( IDMOTORISTA INT PRIMARY KEY AUTO_INCREMENT, NUMEROREGISTRO VARCHAR(10) UNIQUE NOT NULL, VALIDADE DATE NOT NULL, ID_DADOSPESSOAS INT ); CREATE TABLE ADMIN( IDADMIN INT PRIMARY KEY AUTO_INCREMENT, SENHA VARCHAR(12) NOT NULL, ID_DADOSPESSOAS INT ); CREATE TABLE VIATURA ( IDVIATURA INT PRIMARY KEY AUTO_INCREMENT, TIPOVEICULO VARCHAR(45) NOT NULL, MARCA VARCHAR(25) NOT NULL, MODELO VARCHAR(25) NOT NULL, COR VARCHAR(25) NOT NULL, ANOFABRICACAO CHAR(4) NOT NULL, PLACA CHAR(8) UNIQUE NOT NULL, RENAVAN CHAR(11) UNIQUE NOT NULL, PASSAGEIROS CHAR(2) NOT NULL ); CREATE TABLE VIAGENS ( IDVIAGENS INT PRIMARY KEY AUTO_INCREMENT, CIDADE VARCHAR(25) NOT NULL, DATAHORAINICIO DATETIME NOT NULL, DATAHORAFINAL DATETIME NOT NULL, COR VARCHAR(15) NOT NULL, CEP CHAR(9) NOT NULL, RUA VARCHAR(30) NOT NULL, NUMERO VARCHAR(8) NOT NULL, BAIRRO VARCHAR(25) NOT NULL, ESTADO CHAR(2) NOT NULL, DESCRICAO VARCHAR(200), ID_DADOSPESSOAS INT, ID_MOTORISTA INT, ID_VIATURA INT ); CREATE TABLE PASSAGEIRO ( IDPASSAGEIRO INT PRIMARY KEY AUTO_INCREMENT, ID_DADOSPESSOAS INT , ID_VIAGEM INT ); ALTER TABLE VIAGENS ADD CONSTRAINT FK_DADOSPESSOAS_VIAGENS FOREIGN KEY (ID_DADOSPESSOAS) REFERENCES DADOSPESSOAS(IDDADOSPESSOAS) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE VIAGENS ADD CONSTRAINT FK_MOTORISTA_VIAGENS FOREIGN KEY (ID_MOTORISTA) REFERENCES MOTORISTA(IDMOTORISTA)ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE VIAGENS ADD CONSTRAINT FK_VIATURA_VIAGENS FOREIGN KEY (ID_VIATURA) REFERENCES VIATURA(IDVIATURA)ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE MOTORISTA ADD CONSTRAINT FK_DADOSPESSOAS_MOTORISTA FOREIGN KEY (ID_DADOSPESSOAS) REFERENCES DADOSPESSOAS(IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE ADMIN ADD CONSTRAINT FK_DADOSPESSOAS_ADMIN FOREIGN KEY (ID_DADOSPESSOAS) REFERENCES DADOSPESSOAS(IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE PASSAGEIRO ADD CONSTRAINT FK_DADOSPESSOAS_PASSAGEIRO FOREIGN KEY (ID_DADOSPESSOAS) REFERENCES DADOSPESSOAS (IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE PASSAGEIRO ADD CONSTRAINT FK_VIAGENS_PASSAGEIRO FOREIGN KEY (ID_VIAGEM) REFERENCES VIAGENS (IDVIAGENS)ON DELETE CASCADE ON UPDATE CASCADE;
  10. GabyBD

    Criação de Procedure

    Poderiam me ajudar com a criação desse código ? Segue imagem em anexo
  11. Alexandre Garcia

    Procedure nao compila

    Boa noite, Alguém consegue me dizer porque essa procedure não copila? PROCEDURE EliminaPapel (v_COD_PAPEL PAPEL.COD_PAPEL%TYPE) AS DECLARE BEGIN DELETE FROM PAPEL WHERE cod_papel= v_COD_PAPEL and papel.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; seguinte erro: Erro ao iniciar na linha 1 no comando PROCEDURE EliminaPapel (v_COD_PAPEL PAPEL.COD_PAPEL%TYPE) AS Relatório de erro: Comando Desconhecido Erro ao iniciar na linha 2 no comando DECLARE BEGIN DELETE FROM PAPEL WHERE cod_papel= v_COD_PAPEL and papel.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; Relatório de erro: ORA-06550: linha 5, coluna 21: PL/SQL: ORA-00904: "V_COD_PAPEL": identificador inválido ORA-06550: linha 4, coluna 7: PL/SQL: SQL Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action: Abrc
  12. Rafael Motta

    CHAMAR PROCEDURE, PDO, PHP

    Boa tarde pessoal! preciso de uma ajuda, preciso fazer um select dentro de uma procedure no banco de dados e uso PDO, nao to conseguinto chamar a procedure e não faço ideia como faço um select dela, segue abaixo os codigos de exmplo... a primeira coisa que queria fazer era inserir o seguinte select select COD_RAZAO, NOME, COD_CARTEIRA, NOME_REPRES, coalesce(EMISSAO,'') as EMISSAO, COD_GRUPO from consulta_outras_razoes_ord_fat where COD_CLIENTE = :idCustomer order by emissao desc, cod_razao' abaixo CONSULTA_OUTRAS_RAZOES_ORD_FAT é o nome da procedure no banco function outrasRazoes($idCustomer) { $pdo = conecta(); try { $sql = "CALL CONSULTA_OUTRAS_RAZOES_ORD_FAT(':idCustomer')"; $consultar = $pdo->prepare($sql); $consultar->bindValue(':idCustomer', $idCustomer, PDO::PARAM_INT); $consultar->execute(); $resultado = $consultar->fetch(PDO::FETCH_OBJ); if ($consultar->rowCount() > 0) { return $resultado; } else { return false; } } catch (PDOException $e) { echo $e->getMessage(); } } abaixo segue a procedure do banco begin for select OUTRAS_RAZOES.cod_razao,CLIENTES.NOME, CLIENTES.COD_CARTEIRA, REPRESENTANTES.NOME AS NOME_REPRES, clientes.cod_grupo from clientes inner join outras_razoes on (clientes.codigo = outras_razoes.cod_razao) inner join REPRESENTANTES on (CLIENTES.REPRESENTANTE=REPRESENTANTES.CODIGO) where OUTRAS_RAZOES.cod_cliente=:cod into cod_razao, nome, cod_carteira, nome_repres, cod_grupo do begin select max(notas.emissao) as emissao from notas inner join notas_item on (notas.nota = notas_item.nota) inner join naturezas_operacao on (notas_item.cod_natureza = naturezas_operacao.cod_natureza) and (notas_item.seq = naturezas_operacao.seq) where notas.cod_cliente = :cod_razao and naturezas_operacao.tipo = 1 into emissao; begin suspend; end end end
  13. Boa noite galera, Estou com o seguinte problema Eu tenho uma procedure que me retorna todas as informações das transações, e esta funcionando. porem eu tenho a seguinte situação... a procedure das transações só me retorna a opção que contem na transação mas, eu também preciso mostrar as outras opções disponíveis no combobox. E para fazer isso, eu estou tentando fazer a chamada de outra procedure que deve me retornar todos os dados de uma tabela exceto por aquela que já contem na transação para alimentar o combobox. Porem a segunda procedure não está me retornando nada... não mostra nada no print_r e nem mensagem de erro... Já testei a procedure diretamente no banco de dados e está funcionando. Alguém sabe me dizer oque estou fazendo de errado ou alguma outra maneira de alimentar o combobox desde que seja utilizando procedure ? <?php session_start(); require 'banco_de_dados.php'; $stmt = $conn->prepare("CALL Listar_Todas_Transacao(?)"); $stmt->bindParam(1,$_SESSION['id_user'], PDO::PARAM_INT); $stmt->execute(); $ReturnTrans = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($ReturnTrans as $row){ ?> <table cellpadding="2px"> <form name="Transacao" action="Update_transacao.php" method="post"> <tr><td colspan="5px">Tipo de Transação</td></tr> <tr> <td> <select name="tipo_transacao"> <option value="<?php echo $row['Tipo_transacao_id']?>"><?php echo $row['nome_tipo_transacao']?></option> <?php $tps_tran = $conn->prepare("Call ReturnAllTipo_Transacao(?)"); $tps_tran->bindParam(1, $row['Tipo_transacao_id'], PDO::PARAM_INT); $tps_tran->execute(); $result_tps_trans = $tps_tran->fetchAll(PDO::FETCH_ASSOC); foreach ($result_tps_trans as $row1){ ?> <option value="<?php echo $row1['Tipo_transacao_id']?>"><?php echo $row1['nome_tipo_transacao']?></option> <?php } ?> </select> </td> </tr> </form> </table> <?php } ?>
  14. Marcelo_Ribeiro

    Problema procedure - deadlock

    E aí, blz? Tô com um problemão. Tenho uma aplicação Delphi que chama uma procedure. Eu inicio uma transação na aplicação, chamo a procedure, em seguida faço outras coisas na aplicação e dou um commit. Porém, se dois usuários executam esse processo ao mesmo tempo, dá erro de deadlock. Fiz um teste e executei a procedure duas vezes concomitantemente, e ainda assim deu deadlock Essa procedure só faz delete em várias tabelas, onde passo o id do documento. A instrução é basicamente delete from tabela where id =numeroid Não tenho ideia do que pode ser. Muito obrigado. Fico no aguardo. Valeu
  15. Gostaria de saber onde está o erro desta procedure, pois ela coloca todos os campos do registros: PROCEDURE `Consultar---ome`(Nome varchar(70)) begin select * from TABELA where Nome LIKE concat ('%', Nome,'%'); end Obrigado pela ajuda. Manoel Érik
  16. Tenho uma procedure que faz o cadastro do que está inserido nos input.... porém ele está dando o seguinte erro ao enviar.... Fatal error: Cannot pass parameter 2 by reference in C:\wamp64\www\crud1\crud\2models\user-register\user-register-model.php on line 109 A procedure no php está assim.... Dei umas pesquisadas mas não consegui resolver o meu problema.... Se puderem me ajudar ficaria grato. $rs = $this->db->pdo->prepare("call db.inserirUsers(?, ?, ?, ?, ?) VALUES (:Nome, Rua, Sexo, users_user_id, Estado)"); $rs->bindParam(1, ':Nome', $_POST['Nome'], PDO::PARAM_STR); $rs->bindParam(2, ':Rua', $_POST['Rua'], PDO::PARAM_STR); $rs->bindParam(3, ':Sexo', $_POST['radio'], PDO::PARAM_STR); $rs->bindParam(5, ':Estado', $_POST['estado'], PDO::PARAM_STR); $rs-> execute(); for ($i = 1; $i <5; $i++) { if (!empty($Outros[$i])) { $rs = $this->db->pdo->prepare("call db.inserirOutros(?) VALUES (:Outros)"); $rs->bindParam(':Outros', $_POST['Outros'.$i], PDO::PARAM_STR); $rs-> execute(); } }
  17. Pessoal boa noite! Preciso de um help, dos especialistas rs. Seguinte, estou desenvolvendo uma aplicação de controle de estoque básica (ASP.NET COM MYSQL), onde incluo via aplicação mais de um registro em uma tabela, [entrada_produto_item], e tenho a seguinte procedure. DELIMITER // CREATE PROCEDURE `SP_AtualizaEstoque`( `idproduto` int, `qtde_produto_item` int, `idalmoxarifado` int) BEGIN declare contador int(11); SELECT count(*) into contador FROM estoque WHERE idproduto = idproduto; IF contador > 0 THEN UPDATE estoque SET qtde=qtde + qtde_produto_item WHERE idproduto = idproduto and idalmoxarifado=idalmoxarifado; ELSE INSERT INTO estoque (idproduto, qtde,idalmoxarifado) values (idproduto, qtde_produto_item,idalmoxarifado); END IF; END // DELIMITER ; Que é chamada pela TRIGGER DELIMITER // CREATE TRIGGER `TRG_EntradaProduto_AI` AFTER INSERT ON `entrada_produto_item` FOR EACH ROW BEGIN CALL SP_AtualizaEstoque (new.idproduto, new.qtde_produto_item , new.idalmoxarifado); END // DELIMITER ; Porém ao incluir via aplicação mais de um registro de produtos com ID diferentes na tabela entrada_produto_item, ao analisar a tabela [estoque] que é controlada pela procedure (SP_AtualizaEstoque), não mostra mais de um registro, apenas está incrementando no mesmo registro a quantidade de produtos informado. Minha suspeita seja que na Procedure o filtro ".... idproduto = idproduto" não esteja fazendo distinção dos códigos diferentes dos procutos incluidos. Alguém consegue me ajudar? desde já agradeço
  18. Olá, estou recentemente estudando o PDO , já conseguir usar INSERT/UPDATER/DELETE porém eu utilizo banco de dados MSSQL SERVER 2008 estou tentando usar o método exec para eu executa a procedure que contém mais inserção dentro dela. tentei utilizar o mesmo modelo que faço: EXEMPLO: $ClassProcedure = $conexao->prepare("EXEC Account.dbo.pdoteste (:Login, :country, :firsname)"); mais não funciona, o PDO utiliza outra forma de executa procedure? se sim alguém poderia me fazer uma execução demonstrativo por favor. quero utiliza essa função para cadastro com o methodo $_GET
  19. Fagner

    CALL procedure (....

    Boa tarde, Estou literalmetne levando um banho aqui, preciso enviar 3 parametros para uma procedure e retornar 2, estou fazendo da seguinte forma: $exec = $Conn->prepare("SET @p_total := ?"); $exec->bind_param('i',$total); $exec->execute(); $exec = $Conn->prepare("SET @p_vlrvenda := ?"); $exec->bind_param('d',$vlrvenda); $exec->execute(); $exec = $Conn->query("CALL addSacola($codcliente,$codproduto,$codconsultora)"); $exec = $Conn->query("SELECT @p_total,@p_vlrvenda"); $row = $exec->fetch_row(); O problema é o retorno que está vindo NULL ja conferi a procedure e o select está retornando o valor correto.
  20. Henroco

    Procedure Concatenada

    Olá pessoal, sou novo com o SQL Server e estou tentando aprender a usar procedure concatenada, porém, não consigo executar essa procedure da maneira que eu quero. Mesmo usando EXEC SP_NOME_PROCEDURE NULL,NULL,NULL,NULL ou colocando algum valor em cada parte. ALTER PROCEDURE SP_LISTA_PEDIDOS @Sdatainicio varchar(100), @Sdatafim varchar(100), @chaveBusca varchar(100), @TipoBusca varchar(100) AS DECLARE @SQL VARCHAR(8000) SET @SQL += 'SELECT *,b.descricao as dscstatus,c.nome as cliente ' SET @SQL += ' FROM pedidos a with(nolock), ' SET @SQL += ' pedidos_status b with(nolock), ' SET @SQL += ' cadastro c with(nolock) ' SET @SQL += ' WHERE ' SET @SQL += ' a.status <> '''' and ' SET @SQL += ' a.status=b.status and ' SET @SQL += ' a.id_doc = c.id_doc ' IF isnull(@chaveBusca,'')<>'' BEGIN IF isnull(@TipoBusca,'') = 'PEDIDO' SET @SQL += ' and a.numped= '''+@chaveBusca+'''' IF isnull(@TipoBusca,'') = 'CLIENTE' SET @SQL += ' and c.nome like '''+@chaveBusca+'%''' END IF not (isnull(@chavebusca,'')<>'' and isnull(@TipoBusca,'') = 'PEDIDO') SET @SQL += ' and data_inclusao BETWEEN '''+@Sdatainicio+''' AND '''+@Sdatafim+'''' SELECT @SQL Essa é a procedure. O que tem de errado nela? Ou o que está faltando?
  21. Como fazer um procedure em Mysql para inserção de dados em uma agenda, com a condição de que não se pode inserir duas agendas no mesmo dia
  22. Olá Alguém sabe como posso fazer a procedure Oracle retornar para serem valores usados na aplicação assim como já acontece no SQL ? Estou tentando conforme abaixo, não há erros na proc, mas não consigo obter os valores dos campos. O que há de errado ? create or replace PROCEDURE SP_SELECIONA_CLIENTE ( -- Parametros de entrada P_ID IN CLIENTE.IDCLIENTE%TYPE ) AS -- Parametros de saida VIDCLIENTE CLIENTE.IDCLIENTE%TYPE; VNOMECLIENTE CLIENTE.NOMECLIENTE%TYPE; VDATACADASTRO CLIENTE.DATACADASTRO%TYPE; CURSOR regCliente(P_ID IN CLIENTE.IDCLIENTE%TYPE) IS SELECT "IDCLIENTE", "NOMECLIENTE", "DATACADASTRO" FROM CLIENTE C WHERE C.IDCLIENTE = P_ID; regs regCliente%ROWTYPE; CURSOR regClientes IS SELECT "IDCLIENTE", "NOMECLIENTE", "DATACADASTRO" FROM CLIENTE C; regs regClientes%ROWTYPE; BEGIN IF P_ID IS NOT NULL THEN IF regCliente%ISOPEN THEN CLOSE regCliente; END IF; OPEN regCliente(P_ID); FETCH regCliente into VIDCLIENTE, VNOMECLIENTE, VDATACADASTRO; ELSE IF regClientes%ISOPEN THEN CLOSE regClientes; END IF; OPEN regClientes; FETCH regClientes into VIDCLIENTE, VNOMECLIENTE, VDATACADASTRO; END IF; END; ​
  23. Como executo ou chamo procedure no oci8 pelo codeigniter ? Procurei exemplos na internet e nenhum funcionou pra mim...
  24. Olá, Estou em um projeto e o banco de dados é em MySql. Desenvolvi as procedures e no VS 2015 adicionei a dbml. Quando tento arrastar a procedure para a dbml não funciona, se tento arrastar as tabelas funciona. No NuGet atualizei o EntityFramework, MySql.Data e o MySql.Data.Entity. Está instalado o 'MySQL for Visual Studio 1.2.6" Vi em alguns foruns falando que era necessário susbstituir a dll 'C:\Program Files\Common Files\microsoft shared\Visual Database Tools\dsref80.dll", já substitui e nada, falaram também para apagar e depois reparar o VS, também fiz e nada. Alguém tem alguma ideia do que preciso fazer ? Obrigado.
  25. Bom dia Pessoal, Estou iniciando meu trabalhos no Oracle e não conheço muitas coisas específicas do mesmo. O que preciso é efetuar a chamada de uma Procedure dentro de outra Procedure. Segue o código fonte: create or replace procedure SelecionaInsere( --nCodSpr out USU_TStoPro.USU_CODSPR%Type, sNomPro in USU_TStoPro.USU_NOMPRO%Type) as nCodSpr integer; sNome varchar2(25); Begin Begin select Max(Usu_TStoPro.Usu_Codspr) Into nCodSpr from USU_TStoPro; End; if nCodSpr > 0 then sNome := 'teste'; EXECUTE DadosProc(:nCodSpr, :sNome,0); end if; End SelecionaInsere; Se eu remover a chamada do execute, a procedure funciona, porém preciso fazer com que seja chamado a outra procedure passando como parâmetro os valores obtidos nessa procedure. Ao compilar esse código fonte aparece o seguinte erro no PL/Sql: PLS-00103: Encountered the symbol "DADOSPROC" when expecting one of the following: := . ( @ % ; imediato The symbol ":=" was substituted for "DADOSPROC" to continue. Não sei se estou efetuando a chamada de procedure corretamente, mas já tentei de outras formas e também não consegui. Se alguém tiver alguma sugestão, serei grato!
×

Important Information

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