Opa :D
Eu tinha uma coluna chamada coluna_ids que continha o valor "172:536"... e eu precisava quebrar esse valor em antes e depois do sinal de dois pontos.
Para pegar o valor antes dos dois pontos eu usei:
select id from tabela where value_id = SUBSTRING_INDEX(SUBSTRING_INDEX(coluna_ids, ':', -1), ':', 1) ))
Para pegar o valor depois dos dois pontos eu usei:
select id from tabela where value_id = SUBSTRING_INDEX(SUBSTRING_INDEX(coluna_ids, ':', 1), ':', 1) ))
Fonte: https://gustavostraube.wordpress.com/2012/12/14/split-string-no-mysql/
Abraço!
Adriano Schmidt
Mostrando postagens com marcador banco de dados. Mostrar todas as postagens
Mostrando postagens com marcador banco de dados. Mostrar todas as postagens
terça-feira, 15 de março de 2016
quarta-feira, 4 de novembro de 2015
Instalar postgresql no ubuntu
Para instalar o postgresql no ubuntu vamos instalar também o pgadmin (cliente e gerenciador do postgres).
O pgadmin vamos instalar via interface gráfica:
- Procure por ubuntu software center na pesquisa do ubuntu
- Procure por pgadmin e o instale
Agora vá em um terminal e digite o comando abaixo para instalar o postgres
sudo apt-get install postgresql
Depois digite o comando abaixo para acessar o postgres que foi instalado utilizando o usuario default
sudo -u postgres psql
Depois altere a senha do usuário default:
ALTER USER postgres PASSWORD 'postgres';
Aperte Ctrl+D para sair do terminal psql
Agora volte no pgadmin, adicione uma nova conexão com localhost 5432 user postgres senha postgres
Pronto :D
Abraço!
Adriano Schmidt
O pgadmin vamos instalar via interface gráfica:
- Procure por ubuntu software center na pesquisa do ubuntu
- Procure por pgadmin e o instale
Agora vá em um terminal e digite o comando abaixo para instalar o postgres
sudo apt-get install postgresql
Depois digite o comando abaixo para acessar o postgres que foi instalado utilizando o usuario default
sudo -u postgres psql
Depois altere a senha do usuário default:
ALTER USER postgres PASSWORD 'postgres';
Aperte Ctrl+D para sair do terminal psql
Agora volte no pgadmin, adicione uma nova conexão com localhost 5432 user postgres senha postgres
Pronto :D
Abraço!
Adriano Schmidt
quinta-feira, 15 de outubro de 2015
count com distinct
Opa..
Se eu faço uma query com distinct:
Quando eu faço count dela não vai bater:
Pra resolver posso fazer assim:
Obrigado ao meu chará Adriano de Souza pela dica!
Abraço!
Adriano Schmidt
Se eu faço uma query com distinct:
SELECT distinct o FROM tabela1 o JOIN tabela2
Quando eu faço count dela não vai bater:
SELECT distinct count (o) FROM tabela1 o JOIN tabela2
Pra resolver posso fazer assim:
SELECT count (distinct o) FROM tabela1 o JOIN tabela2
Obrigado ao meu chará Adriano de Souza pela dica!
Abraço!
Adriano Schmidt
quinta-feira, 30 de julho de 2015
Como instalar o Mongo no linux?
Segue passo-a-passo para instalar o MongoDB no Linux
Onde estiver escrito (root) você deve utilizar um usuário com permissão de root
Apenas para informacao: O mongo rodara em localhost:27017 e tambem sera startado automaticamente na proxima inicializacao da maquina.
########### Para RedHat/CentOS ###########
# crie o diretorio /data/db (root)
mkdir -p /data/db
# Garanta que o dono da pasta seja o usuario correto. (Altere <nome do usuario> para o usuario que iniciara o mongo) (root)
chown -R <nome do usuario> /data/db/
# crie o arquivo do repositorio yum (root)
vi /etc/yum.repos.d/mongodb-org-3.0.repo
# aperte i para entrar no modo "INSERT" e depois cole as seguintes linhas:
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
# aperte "ESC" e depois digite ":wq" para salvar e fechar o arquivo
# agora instale o mongo (root)
yum install -y mongodb-org
# rode o comando abaixo e verifique se a instalação aconteceu com sucesso
mongo --version
# inicie o mongo
service mongod start
# teste
mongo
#apert ctrl c para sair
########### Para Ubuntu/Debian ###########
# crie o diretorio /data/db (root)
mkdir -p /data/db
# Garanta que o dono da pasta seja o usuario correto. (Altere <nome do usuario> para o usuario que iniciara o mongo) (root)
chown -R <nome do usuario> /data/db/
# agora instale o mongo (root)
apt-get install mongodb
# rode o comando abaixo e verifique se a instalação aconteceu com sucesso
mongo --version
# teste
mongo
#apert ctrl c para sair
Fonte: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
Créditos: Ao Alfredo Zipperer que me deu uma mão para instalar o mongo aqui
Vaaleu!
Adriano Schmidt
Onde estiver escrito (root) você deve utilizar um usuário com permissão de root
Apenas para informacao: O mongo rodara em localhost:27017 e tambem sera startado automaticamente na proxima inicializacao da maquina.
########### Para RedHat/CentOS ###########
# crie o diretorio /data/db (root)
mkdir -p /data/db
# Garanta que o dono da pasta seja o usuario correto. (Altere <nome do usuario> para o usuario que iniciara o mongo) (root)
chown -R <nome do usuario> /data/db/
# crie o arquivo do repositorio yum (root)
vi /etc/yum.repos.d/mongodb-org-3.0.repo
# aperte i para entrar no modo "INSERT" e depois cole as seguintes linhas:
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
# aperte "ESC" e depois digite ":wq" para salvar e fechar o arquivo
# agora instale o mongo (root)
yum install -y mongodb-org
# rode o comando abaixo e verifique se a instalação aconteceu com sucesso
mongo --version
# inicie o mongo
service mongod start
# teste
mongo
#apert ctrl c para sair
########### Para Ubuntu/Debian ###########
# crie o diretorio /data/db (root)
mkdir -p /data/db
# Garanta que o dono da pasta seja o usuario correto. (Altere <nome do usuario> para o usuario que iniciara o mongo) (root)
chown -R <nome do usuario> /data/db/
# agora instale o mongo (root)
apt-get install mongodb
# rode o comando abaixo e verifique se a instalação aconteceu com sucesso
mongo --version
# teste
mongo
#apert ctrl c para sair
Fonte: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
Créditos: Ao Alfredo Zipperer que me deu uma mão para instalar o mongo aqui
Vaaleu!
Adriano Schmidt
quarta-feira, 15 de abril de 2015
Usuário somente leitura no PostgreSQL
Olá pessoal,
Hoje tive que criar um usuário somente leitura (read-only) no PostgreSQL, ao fazer login com o usuário que tem poder de tudo executei os seguintes comandos:
CREATE USER nomedousuario PASSWORD 'teste';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO nomedousuario;
revoke create on schema public from public;
Você pode rodar a segunda linha (GRANT SELECT) dando outros privilégios como UPDATE, INSERT, DELETE entre outros.
A terceira linha (revoke create) é necessária para tirar a perimissão de criar novas tabelas, mas tira a permissão de todo mundo, provavelmente tem como fazer algo mais específico.
Abraço!!
Adriano Schmidt
Hoje tive que criar um usuário somente leitura (read-only) no PostgreSQL, ao fazer login com o usuário que tem poder de tudo executei os seguintes comandos:
CREATE USER nomedousuario PASSWORD 'teste';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO nomedousuario;
revoke create on schema public from public;
Você pode rodar a segunda linha (GRANT SELECT) dando outros privilégios como UPDATE, INSERT, DELETE entre outros.
A terceira linha (revoke create) é necessária para tirar a perimissão de criar novas tabelas, mas tira a permissão de todo mundo, provavelmente tem como fazer algo mais específico.
Abraço!!
Adriano Schmidt
sábado, 27 de dezembro de 2014
PSQLException: ERROR: syntax error at or near "User"
Pessoal..
Hoje tive o erro: PSQLException: ERROR: syntax error at or near "User"
Isso acontece pois a entidade que eu criei se chama User e no PostgreSQL deve existir uma tabela com esse nome ou user é uma palavra reservada.
Então mudei minha entidade para ter outro nome de tabela e não o default:
@Entity
@Table(name="LOGIN_USER")
public class User {
Então funcionou perfeitamente.
Abraço!
Adriano Schmidt
Hoje tive o erro: PSQLException: ERROR: syntax error at or near "User"
Isso acontece pois a entidade que eu criei se chama User e no PostgreSQL deve existir uma tabela com esse nome ou user é uma palavra reservada.
Então mudei minha entidade para ter outro nome de tabela e não o default:
@Entity
@Table(name="LOGIN_USER")
public class User {
Então funcionou perfeitamente.
Abraço!
Adriano Schmidt
quinta-feira, 14 de agosto de 2014
NLS_SORT Oracle
Versão em Português
Today I had problems to order uppercase and lowercase letters in the Oracle database.
Running the following command solved the problem:
ALTER SESSION SET NLS_SORT = WEST_EUROPEAN;
This problem occurred in the client environment but not locally because the NLS_SORT parameter was setted to "BINARY" (responsible for sorting [AZ to az]), and what we needed it to be the "WEST_EUROPEAN" [Aa to Zz] standard.
The trigger below changes the value of the NLS_SORT parameter whenever a session starts in the schema. Do not forget to change the schema name.
Kind regards!
Adrian Schmidt
Today I had problems to order uppercase and lowercase letters in the Oracle database.
Running the following command solved the problem:
ALTER SESSION SET NLS_SORT = WEST_EUROPEAN;
This problem occurred in the client environment but not locally because the NLS_SORT parameter was setted to "BINARY" (responsible for sorting [AZ to az]), and what we needed it to be the "WEST_EUROPEAN" [Aa to Zz] standard.
The trigger below changes the value of the NLS_SORT parameter whenever a session starts in the schema. Do not forget to change the schema name.
create or replace trigger PARAM_SESSION_TRIG after logon on NomeDoSchema.schema begin execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN'; end;
Kind regards!
Adrian Schmidt
NLS_SORT Oracle
English version
Hoje tive problemas com ordenação entre letras maiúsculas e minúsculas no banco de dados Oracle.
Executando o comando abaixo resolveu:
ALTER SESSION SET NLS_SORT=WEST_EUROPEAN;
Este problema aconteceu no ambiente do cliente mas não localmente, pois o parâmetro nls_sort estava setado como "BINARY" (responsável pela ordenação [AZ a az]), e precisávamos que fosse o padrão "WEST_EUROPEAN" [Aa a Zz] .
A trigger abaixo altera o valor do parâmetro nls_sort sempre que inicia-se uma sessão no schema. Não esqueça de alterar o nome do schema.
Abraços!
Adriano Schmidt
Hoje tive problemas com ordenação entre letras maiúsculas e minúsculas no banco de dados Oracle.
Executando o comando abaixo resolveu:
ALTER SESSION SET NLS_SORT=WEST_EUROPEAN;
Este problema aconteceu no ambiente do cliente mas não localmente, pois o parâmetro nls_sort estava setado como "BINARY" (responsável pela ordenação [AZ a az]), e precisávamos que fosse o padrão "WEST_EUROPEAN" [Aa a Zz] .
A trigger abaixo altera o valor do parâmetro nls_sort sempre que inicia-se uma sessão no schema. Não esqueça de alterar o nome do schema.
create or replace trigger PARAM_SESSION_TRIG after logon on NomeDoSchema.schema begin execute immediate 'ALTER SESSION SET NLS_SORT=WEST_EUROPEAN'; end;
Abraços!
Adriano Schmidt
domingo, 20 de julho de 2014
Atualizar nextval oracle
Pessoal, tenho uma tabela que um monte de gente inseriu dados na mão e não respeitou a sequence.
Então utilizei este script para atualizar o nextval da sequence com o max()+1 da coluna id.
declare
v_prox_numero number;
v_numero_atual number;
v_novo_numero number;
v_numero number;
v_texto varchar2(100);
begin
select max(t.id)+1
into v_prox_numero
from nome_tabela t;
select nome_sequence.nextval
into v_numero_atual
from dual;
v_novo_numero := (v_prox_numero - v_numero_atual)+1;
if v_novo_numero > 0 then
for reg_seq in 1..v_novo_numero loop
select nome_sequence.nextval
into v_numero
from dual;
end loop;
end if;
end;
Créditos à Ana Karina Pereira.
Abraços!
Adriano Schmidt
Então utilizei este script para atualizar o nextval da sequence com o max()+1 da coluna id.
declare
v_prox_numero number;
v_numero_atual number;
v_novo_numero number;
v_numero number;
v_texto varchar2(100);
begin
select max(t.id)+1
into v_prox_numero
from nome_tabela t;
select nome_sequence.nextval
into v_numero_atual
from dual;
v_novo_numero := (v_prox_numero - v_numero_atual)+1;
if v_novo_numero > 0 then
for reg_seq in 1..v_novo_numero loop
select nome_sequence.nextval
into v_numero
from dual;
end loop;
end if;
end;
Créditos à Ana Karina Pereira.
Abraços!
Adriano Schmidt
quinta-feira, 10 de julho de 2014
Join HQL
Quando no Java temos uma Entidade que tem uma lista de outra entidade.
E vamos fazer uma consulta com HQL (Hibernate Query Language) e precisamos acessar um atributo de um item da lista precisamos fazer um JOIN.
Segue um exemplo bem básico de como podemos fazer:
select a from TabelaA a inner join a.bList b inner join b.c.dList d where d.id = :id"
select a from TabelaA a, in (a.bList) b, in (b.c.dList) d where d.id = :id
Abraço!
Adriano Schmidt
E vamos fazer uma consulta com HQL (Hibernate Query Language) e precisamos acessar um atributo de um item da lista precisamos fazer um JOIN.
Segue um exemplo bem básico de como podemos fazer:
select a from TabelaA a inner join a.bList b inner join b.c.dList d where d.id = :id"
select a from TabelaA a, in (a.bList) b, in (b.c.dList) d where d.id = :id
Abraço!
Adriano Schmidt
domingo, 15 de junho de 2014
Deletar todas as tabelas de um banco de dados Oracle
Script que deleta todas as tabelas do banco:
Simples e rápido!
Para deletar todas as sequences do banco é só rodar o seguinte comando:
Fonte: http://golker.blogspot.com.br/2009/05/dropar-todos-os-tipos-e-tabelas-no.html
Abraço!
Adriano Schmidt
begin for deleta in (select table_name, 'DROP TABLE '||table_name||' cascade constraints' AS dropar from user_tables) loop BEGIN EXECUTE IMMEDIATE deleta.dropar; dbms_output.put_line('DROP TABLE '||deleta.table_name||' cascade constraints;'); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Erro ao tentar dropar a tabela:'||deleta.table_name); END; end loop; end;
Simples e rápido!
Para deletar todas as sequences do banco é só rodar o seguinte comando:
begin for deleta in (select sequence_name, 'DROP SEQUENCE '||sequence_name||' ' AS dropar from user_sequences) loop BEGIN EXECUTE IMMEDIATE deleta.dropar; dbms_output.put_line('DROP SEQUENCE '||deleta.sequence_name||' ;'); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Erro ao tentar dropar a tabela:'||deleta.sequence_name); END; end loop; end;
Fonte: http://golker.blogspot.com.br/2009/05/dropar-todos-os-tipos-e-tabelas-no.html
Abraço!
Adriano Schmidt
quarta-feira, 16 de abril de 2014
show_sql=true não exibe os parâmetros
Após setar o show-sql como true no meu persistence.xml no meu projeto que roda no JBoss EAP 6.2 (ou Jboss AS7, ou WildFly) as queries apareceram no log, mas o valor dos parâmetros não. Aparecia somente assim:
Para fazer os valores aparecerem entrei no arquivo standalone.xml do meu JBoss e fui no subsystem logging (esse arquivo tem várias tags subsystem, uma delas tem o name logging)
Então, junto com os outros loggers adicionei o logger abaixo:
Após reiniciar o JBoss, o log ficou assim:
Fonte: http://stackoverflow.com/questions/9159752/how-to-get-jdbc-binding-parameters-from-hibernate-in-jboss-7
21:10:03,314 INFO [stdout] (http-/0.0.0.0:8080-3) Hibernate: select exemplo0_.COL_X from EXEMPLO exemplo0_ where exemplo0_.COL_Y =?
Para fazer os valores aparecerem entrei no arquivo standalone.xml do meu JBoss e fui no subsystem logging (esse arquivo tem várias tags subsystem, uma delas tem o name logging)
Então, junto com os outros loggers adicionei o logger abaixo:
<logger category="org.hibernate.type.descriptor.sql.BasicBinder"> <level name="TRACE"/> </logger>
Após reiniciar o JBoss, o log ficou assim:
21:15:04,234 INFO [stdout] (http-/0.0.0.0:8080-3) Hibernate: select exemplo0_.COL_X from EXEMPLO exemplo0_ where exemplo0_.COL_Y =? 21:15:04,234 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] (http-/0.0.0.0:8080-3) binding parameter [1] as [BIGINT] - 600
Fonte: http://stackoverflow.com/questions/9159752/how-to-get-jdbc-binding-parameters-from-hibernate-in-jboss-7
domingo, 9 de fevereiro de 2014
Criar Schema Oracle
Pessoal..
Hoje tive que fazer uma atividade simples, criar um schema no oracle, porém era necessário saber a sintaxe, saber um pouco sobre tablespaces e também dar os grants corretos.
Assim sendo, resolvi documentar aqui para caso alguém tenha que fazer algo semelhante:
Segue abaixo uma sugestão de script para criar os databases. Não esqueça de alterar nome_schemad, nome_schema, caminho_sevidor_datafiles:
Ou mais simples ainda usando a TABLESPACE users:
A senha é o que vem depois do IDENTIFIED BY, caso queira pode mudar.
É isso aí, abraços!!
Adriano Schmidt
Hoje tive que fazer uma atividade simples, criar um schema no oracle, porém era necessário saber a sintaxe, saber um pouco sobre tablespaces e também dar os grants corretos.
Assim sendo, resolvi documentar aqui para caso alguém tenha que fazer algo semelhante:
Segue abaixo uma sugestão de script para criar os databases. Não esqueça de alterar nome_schemad, nome_schema, caminho_sevidor_datafiles:
CREATE TABLESPACE nome_schemad DATAFILE ‘caminho_servidor_datafiles\nome_schemad.DBF' SIZE 100M AUTOEXTEND ON / CREATE USER nome_schema IDENTIFIED BY nome_schema DEFAULT TABLESPACE nome_schemad TEMPORARY TABLESPACE TEMP / grant connect, resource, create any view, create any synonym, create any table, create database link to nome_schema /
Ou mais simples ainda usando a TABLESPACE users:
CREATE USER nome_schema IDENTIFIED BY nome_schema DEFAULT TABLESPACE users TEMPORARY TABLESPACE TEMP / grant connect, resource, create any view, create any synonym, create any table, create database link to nome_schema /
A senha é o que vem depois do IDENTIFIED BY, caso queira pode mudar.
É isso aí, abraços!!
Adriano Schmidt
terça-feira, 19 de junho de 2012
IDENTITY_INSERT OFF
Hoje um amigo aqui da empresa me perguntou:
"Adriano, usei a query abaixo em um banco SQLSERVER e deu esse erro ali, sabe o que pode ser?"
insert into my_table (id, description, situation_type) values (14, 'aaaa', 1);
Error: Não é possível inserir um valor explícito para a coluna de identidade na tabela 'my_table' quando IDENTITY_INSERT está definido como OFF.
Para resolver bastou tirar o id da query e deixar esse trabalho para o próprio banco de dados:
insert into my_table (description, situation_type) values ('aaaa', 1);
Pronto, resolvido!
Abraços!
Adriano Schmidt
"Adriano, usei a query abaixo em um banco SQLSERVER e deu esse erro ali, sabe o que pode ser?"
insert into my_table (id, description, situation_type) values (14, 'aaaa', 1);
Error: Não é possível inserir um valor explícito para a coluna de identidade na tabela 'my_table' quando IDENTITY_INSERT está definido como OFF.
Para resolver bastou tirar o id da query e deixar esse trabalho para o próprio banco de dados:
insert into my_table (description, situation_type) values ('aaaa', 1);
Pronto, resolvido!
Abraços!
Adriano Schmidt
quarta-feira, 29 de junho de 2011
No Dialect mapping for JDBC type: 2004
Olá..
Um cliente aqui usa o banco de dados Informix.. ao testar nosso projeto nesse banco tive o seguinte erro:
13:57:15,040 INFO [DatabaseMetadata] table not found: MY_TABLE
13:57:15,041 ERROR [SchemaUpdate] could not complete schema update: org.hibernate.MappingException: No Dialect mapping for JDBC type: 2004
at org.hibernate.dialect.TypeNames.get(TypeNames.java:79) [:3.5.5-Final]
at org.hibernate.dialect.TypeNames.get(TypeNames.java:104) [:3.5.5-Final]
at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:347) [:3.5.5-Final]
O problema era que temos uma tabela que guarda uma imagem em uma de suas colunas e usamos @Lob no seu mapeamento. O Dialeto do Informix não aceitou o @Lob.
Para resolver extendi o Dialeto do Informix e adicionei as seguinte linhas no construtor:
registerColumnType(Types.BLOB, "blob");
registerColumnType(Types.CLOB, "clob");
Mais detalhes em http://www.snailshell.de/blog/archives/2007/06/entry_108.html
Alterei o persistence.xml para usar o dialeto que criei e o projeto funcionou perfeitamente.
Outras fontes:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2646
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2523
Vaaleu
Adriano Schmidt
Um cliente aqui usa o banco de dados Informix.. ao testar nosso projeto nesse banco tive o seguinte erro:
13:57:15,040 INFO [DatabaseMetadata] table not found: MY_TABLE
13:57:15,041 ERROR [SchemaUpdate] could not complete schema update: org.hibernate.MappingException: No Dialect mapping for JDBC type: 2004
at org.hibernate.dialect.TypeNames.get(TypeNames.java:79) [:3.5.5-Final]
at org.hibernate.dialect.TypeNames.get(TypeNames.java:104) [:3.5.5-Final]
at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:347) [:3.5.5-Final]
O problema era que temos uma tabela que guarda uma imagem em uma de suas colunas e usamos @Lob no seu mapeamento. O Dialeto do Informix não aceitou o @Lob.
Para resolver extendi o Dialeto do Informix e adicionei as seguinte linhas no construtor:
registerColumnType(Types.BLOB, "blob");
registerColumnType(Types.CLOB, "clob");
Mais detalhes em http://www.snailshell.de/blog/archives/2007/06/entry_108.html
Alterei o persistence.xml para usar o dialeto que criei e o projeto funcionou perfeitamente.
Outras fontes:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2646
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2523
Vaaleu
Adriano Schmidt
sexta-feira, 11 de março de 2011
ORA-01452: cannot CREATE UNIQUE INDEX
Olá,
Fui criar um índice único no oracle:
CREATE UNIQUE INDEX nome_do_indice ON nome_da_tabela (coluna1, coluna2, coluna3);
e aconteceu o seguinte erro:
Error: ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found
Isso aconteceu pois na tabela que fui inserir o índice já haviam registros que violavam esse índice, por isso não permitiu criar..
Para resolver removi os registros que violavam o índice e deu tudo certo.
Mais detalhes sobre o erro: http://ora-01452.ora-code.com/
Mais detalhes sobre índices no oracle: http://www.techonthenet.com/oracle/indexes.php
Vaaleu!
Adriano Schmidt.
Fui criar um índice único no oracle:
CREATE UNIQUE INDEX nome_do_indice ON nome_da_tabela (coluna1, coluna2, coluna3);
e aconteceu o seguinte erro:
Error: ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found
Isso aconteceu pois na tabela que fui inserir o índice já haviam registros que violavam esse índice, por isso não permitiu criar..
Para resolver removi os registros que violavam o índice e deu tudo certo.
Mais detalhes sobre o erro: http://ora-01452.ora-code.com/
Mais detalhes sobre índices no oracle: http://www.techonthenet.com/oracle/indexes.php
Vaaleu!
Adriano Schmidt.
quinta-feira, 3 de março de 2011
join type not supported by OracleJoinFragment
Hoje ao usar um right join num banco oracle tive o seguinte erro:
join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)
Para resolver tive que trocar o hibernate.dialect do persistence.xml de:
org.hibernate.dialect.OracleDialect
para:
org.hibernate.dialect.Oracle10gDialect
Pronto, resolvido.
Adriano Schmidt
join type not supported by OracleJoinFragment (use Oracle9iDialect/Oracle10gDialect)
Para resolver tive que trocar o hibernate.dialect do persistence.xml de:
org.hibernate.dialect.OracleDialect
para:
org.hibernate.dialect.Oracle10gDialect
Pronto, resolvido.
Adriano Schmidt
terça-feira, 8 de fevereiro de 2011
SQL Server - Apparently wrong driver class specified for URL
Olá, hoje tive o seguinte erro ao iniciar o JBoss num ambiente SQL Server 2000:
15:45:18,348 WARN [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: com.microsoft.sqlserver.jdbc.SQLServerDriver, url: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydatabase)
O problema era a URL de conexão com o banco no meu arquivo ds.xml, tirei o :microsoft
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydatabase
jdbc:sqlserver://localhost:1433;DatabaseName=mydatabase
Vaaleu!
Adriano Schmidt
15:45:18,348 WARN [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class: com.microsoft.sqlserver.jdbc.SQLServerDriver, url: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydatabase)
O problema era a URL de conexão com o banco no meu arquivo ds.xml, tirei o :microsoft
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydatabase
jdbc:sqlserver://localhost:1433;DatabaseName=mydatabase
Vaaleu!
Adriano Schmidt
terça-feira, 25 de janeiro de 2011
SQL - ignorar horas
Oi,
Fiz a segunte query:
select m from MinhaTabela m where :date between m.initialDate AND m.endDate
e tive o seguinte problema: o meu parâmetro :date era uma data com as horas 00:00, porém o initialDate era sempre com horário (12:30 por exemplo), então minha query nunca retornava nada.
Para igorar as horas utilizei a função date()
select m from MinhaTabela m where :date between date(m.initialDate) AND date(m.endDate)
Pronto! Dessa forma o horário foi ignorado e a comparação foi feita utilizando somente as datas e tudo funcionou : )
Mais funções de data e hora podem ser encontradas em: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Vaaleu!
Adriano Schmidt
Fiz a segunte query:
select m from MinhaTabela m where :date between m.initialDate AND m.endDate
e tive o seguinte problema: o meu parâmetro :date era uma data com as horas 00:00, porém o initialDate era sempre com horário (12:30 por exemplo), então minha query nunca retornava nada.
Para igorar as horas utilizei a função date()
select m from MinhaTabela m where :date between date(m.initialDate) AND date(m.endDate)
Pronto! Dessa forma o horário foi ignorado e a comparação foi feita utilizando somente as datas e tudo funcionou : )
Mais funções de data e hora podem ser encontradas em: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
Vaaleu!
Adriano Schmidt
quarta-feira, 22 de dezembro de 2010
Exportar dados mysql
Olá,
No terminal de comando basta executar a seguinte linha de comando:
mysqldump -u root -p -r c:\dados.sql nomeDoBanco
altere nomeDoBanco pelo nome do banco
altere root pelo nome do usuário
altere c:\dados.sql pelo diretório/arquivo.sql onde os dados serão gravados
Depois será solicitada a senha e então os dados serão exportados para o arquivo indicado.
Vaaleu!
No terminal de comando basta executar a seguinte linha de comando:
mysqldump -u root -p -r c:\dados.sql nomeDoBanco
altere nomeDoBanco pelo nome do banco
altere root pelo nome do usuário
altere c:\dados.sql pelo diretório/arquivo.sql onde os dados serão gravados
Depois será solicitada a senha e então os dados serão exportados para o arquivo indicado.
Vaaleu!
Assinar:
Postagens (Atom)