Ir para conteúdo
Fórum Script Brasil

Joca Baldini

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Tudo que Joca Baldini postou

  1. Bom dia galera. Estou com um problema ao importar um BD do Windows para o Linux. O computador onde fica o BD é Windows e a máquina que eu uso é Linux. Sempre que vou importar o BD o dump vem com as referências da tabela para chave estrangeira em mínusculo (a tabela chama Usuario mas vem usuario, Cliente vem cliente) pois o windows não é case sensitive mas o Linux é, e isso dá problema na hora de executar (pois o Linux não encontra nenhuma tabela usuario, só Usuario). Alguém sabe uma forma de resolver isso, ou tem algum script que altere sozinho??? Por enquanto eu estou abrindo o dump no terminal e trocando na mão mesmo. Grato.
  2. Jhonas, não entendi o que você quis dizer. O que seriam os caracteres #39 e #37 e para expressões regulares o correto não seria usar o REGEXP ou o RLIKE ao invés do LIKE?
  3. Ae galera, meu problema é o seguinte. Tenho uma tabela com as fotos dos produtos e até agora a busca é feita com um LIKE. Isso estava gerando um problema de pegar a foto errada para determinados produtos, pois um produto sem foto só pode carregar a foto de outro se só o final do código mudar, exemplo: AL001BRI pode carregar a foto de AL001SAF, mas AN100 não pode carregar a foto do AN1001. Usei a seguinte expressão regular "^'código'+[a-zA-Z]" (no caso testei o código como AN100 e AL001) e funcionou para esses casos. Mas em casos onde a foto será puxada de um produto que não tem letras no final dá erro (exemplo T332ANAT era para puxar a foto do T332, mas não puxa). Tentei mudar a expressão para "^'código'*[a-zA-Z]" mas ae o filtro pegou muito mais códigos do que era pra pegar. Então gostaria de saber qual expressão regular eu devo usar para que o mysql selecione os registros que começarem exatamente com o código passado e dpois do código possa ter letras ou não. Grato.
  4. Pelo que entendi o FULANO viria da coluna Corretor da tabela tbCorretores, mas o Beltrano viria de onde?
  5. Joca Baldini

    Laço no MySQL

    Ae moçada, dando uma pesquisada no assunto vi que com cursores eu consigo resolver meu problema. Minha idéia é usar um cursor para fazer o primeiro select, inserir os dados desse select para uma tabela temporaria. Depois usar outros 4 cursores para pegar os outros resultados que preciso e atualizar essa tabela. Por último eu apenas pegava todo o conteúdo da tabela temporaria e gerava os relatórios. Por enquanto meu código está assim: <code> DROP PROCEDURE IF EXISTS minhaProcedure; delimiter | CREATE PROCEDURE minhaProcedure() BEGIN DROP TABLE IF EXISTS `meuBD`.`TabelaTemp`; CREATE TABLE `meuBD`.`TabelaTemp` ( `codigo` varchar(255) NOT NULL, `razaoSocial` varchar(255) NOT NULL, `idInt` int(10) unsigned NOT NULL, `dataMax` date, `total` double, `quantidadeTotal` int(10) unsigned, `custo` double ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DECLARE @done INT DEFAULT 0; DECLARE @cod VARCHAR(255); DECLARE @rSocial VARCHAR(255); DECLARE @idInt INT; DECLARE @maxData DATE; DECLARE @total DOUBLE; DECLARE @qtdTotal INT; DECLARE @custoTotal DOUBLE; DECLARE curs1 CURSOR FOR(SELECT i.codigo, i.razaoSocial, i.idInstituicao FROM Instituicao i, Cliente c WHERE i.idInstituicao = c.idInstituicao AND i.bloqueado = 0 ORDER BY i.codigo); DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN curs1; REPEAT FETCH curs1 INTO @cod, @rSocial, @idInt; IF NOT @done THEN INSERT INTO TabelaTemp (codigo, razaoSocial, idInt) VALUES (@cod, @rSocial, @idInt); END IF; UNTIL @done END REPEAT; CLOSE curs1; END | DELIMITER; </code> Por enquanto estou apenas tentando inserir os dados do primeiro cursor na tabela temporária, mas dessa forma o MySQL Administrator (que estou usando pra testar) não roda dizendo que a procedure não existe (PROCEDURE minhaProcedure does not exist), se eu tiro o DROP diz que tem um erro de sintaxe (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3). Alguém tem alguma ideia?
  6. Joca Baldini

    Laço no MySQL

    Galera, sou iniciante no uso do MySQL e estou com um problema. Para ficar mais claro já aviso que uso o MySQL e Java. O meu problema está nos relatório que geramos no nosso sistema. Os relatórios são feitos a partir de um comando feito em uma página .java que executa querys chamando métodos de algum DAO para gerar o resultado, depois insere os dados necessários nas colunas do relatório. No relatório em questão (que tem 6 colunas no total) é executado um determinado método, esse método, primeiramente, executa um SELECT que tem como retorno determinadas colunas e cerca de 50 linhas. Duas dessas colunas serão inseridas diretamente no relatório e as outras quatro serão obtidas a partir da execução de quatro outros métodos que usam como parâmetro uma das colunas retornadas do primeiro método. O problema é que é necessária a execução dos 4 métodos em cada linha do primeiro SELECT e usamos o ResultSet do mesmo e um laço no java para fazer isso. Mas fica muito demorado dessa forma (afinal, com 50 linhas de resultado no primeiro SELECT, são 200 consultas para gerar o relatório), portanto preciso de uma forma de gerar esse laço dentro do próprio SQL para que o tempo de execução fosse menor. Espero ter sido claro e já agradeço quem puder ajudar.
×
×
  • Criar Novo...