Erro Localizar Tabela (postgree) com esquema eclipse (java) Resolvido

Olá pessoal, procurei mas nao encontrei resposta, sou iniciante com java com postgree… :lol: preeciso de ajuuda.

Estou com eclipse 3.1 , jdk1.6.0_02 e Postgree 8.3, pois bem…

Criei as tabelas com o pgAdminIII, dentro de (esquemas) que no caso ficaram assim…

[color=blue]oficina.[/color]"Heados"
[color=blue]oficina.[/color]"PedOs"
[color=blue]public.[/color]"Clientes"  

ja consegui me conectar ao banco, segue o codigo:

if (con== null){      
  try{      
    Class.forName("org.postgresql.Driver");      
    con = DriverManager.getConnection  ("jdbc:postgresql://localhost:5432/AdminOfc","reunix","admin");      
 } catch (SQLException e) {      
    System.err.println("Erro: "+e);      
    con = null;      
 } catch (ClassNotFoundException e) {      
   System.out.println("Drive JDBC(PostGree) Não Encontrado");      
   e.printStackTrace();      
}      
}    

Esta funciona que é uma beleza.

[color=red]quando vou tentar fazer um consulta, ele nao consegue localizar a tabela:[/color]

// Buscar Dados;

String result_busca = BUSCA_INVALIDA;      
try{      
   stm = con.createStatement();      
   rs  = stm.executeQuery("select * from [color=blue]oficina.[/color]HeadOs");                          
   if (rs.next()) {      
      System.out.println(rs.getString("Nome"));      
   } else     
     result_busca  = BUSCA_INVALIDA;      
     rs.close();      
     stm.close();      
   } catch (SQLException  e) {      
      System.out.println("Erro: "+e);      
      }    
[color=red]diz o seguinte erro:[/color]
ERROR: relation "[color=blue]oficina.[/color]clientes" does not exist

ja tentei fazer a clausula (select) assim (select Nome from Heados)

(select Nome from oficina.Heados)
(select Nome from oficina.'Heados') e nao consegue localizar a tabela.

Lembro-me que quando estava criando as tabelas com o pgAdminIII
foi na janela de SQL e quando precisava consultar alguma tabela do esquema ([color=blue]oficina[/color]) tunha que fazer o seguinte codigo:

select "Nome", "Veiculo"   from [color=blue]oficina.[/color]"Heados" 
where Nome like '%MARIA%'

como seria no eclipse com meu codigo acima?

Espero que tenham entendido, desde ja agradeço.
Renato Muniz

ja q vc e novo,coloque seus codigos dentro da tag “Code”, e outra esse assunto era para estar em java basica,e eu acho postgre uma M…,esse banco da uns erros bizarros com consulta simples,mais po coloca ai nas tags para poder vizualizar melhor vlw!!!

ok irmão ajudou muito, e sobre as tags nao esquecerei mais. :idea:

po irmao nao to dando bronca nao,é so vc editar o seu post,so isso,c vc ta reclamando q eu SO T DEI UMA DICA,da uma procurada nos outros ai tu vai ver os esporros hehhe!!!,mais é serio é so editar o seu post fica bem melhor para visualizar,tem gente acho q nesse forum nao, mais ja vi gente q nem olha qnd nao esta com o Code !!! blz ???

po faz o seguinte copia e cola no editor sql q vc esta usando e ve se dar algum resultado,ou gera algum erro ?

blz, ja esqueci a bronca, mais eu não sei como alterar o post, hehe

essa instrução aqui funciona no pgAdminIII inclusive com as " "

select "Nome", "Veiculo" from oficina."Heados"

mas no eclipse nao aceita as " ".
vlw.

entao faz o seguinte coloca assim

 rs = stm.executeQuery("select * from oficina.'HeadOs'"); 

ou seja onde tiver q colocar aspas duplas " na query coloca aspas simples ’ dentro da string!

cara tu e terceira pessoa q tem problema com consulta no postgree,um conselho vai para MySql,ou e no trabalho ?

e ai funcionou???

é ja tentei antes entrar no musql mas quando fui pesquisar pra comparar os dois preferi o Postgree, por ser mais robusto dentre outras utilidades e sem falar q é 100%free, jo o mysql é so o (mysql) se nao estou enganado.

ja tentei fazer a clausula (select) assim

(select Nome from Heados) (select Nome from oficina.Heados) (select Nome from oficina.'Heados')

e nao consegue localizar a tabela.

da forma q vc me informou da erro de sintaxe

Erro: org.postgresql.util.PSQLException: ERROR: syntax error at or near “‘HeadOs’”

vlw

Alõu pessoal depois de muitas tentativas resolvi o problema da seguinte forma:

antes de toduo…
o problema esta na instrucao

rs  = stm.executeQuery("SELECT * FROM oficina."Heados" ");  

seria impossível adicionar uma (" “) dentro da instrução já com (” ")
mas pelo que notei não da pra localizar tabelas e campos sem as ( “”)
no proprio pgAdminIII é obrigatório.

mas…
resolvi da seguinte forma: é apenas um quebra galho, para sistemas maiores seria dor de cabeça: mas nada q uma funcaozinha resolva;

char cAspas  = (char) '"';  // Codigo 34 do ASC   
  
rs  = stm.executeQuery("SELECT * FROM oficina."+cAspas+"HeadOs"+cAspas+" WHERE "+cAspas+"Prisma"+cAspas+" = 'VERDE'");  

que no fim das contas ficaria assim:

(SELECT * FROM oficina."Heados"  WHERE "Prisma" = 'VERDE')

funcionou q foi uma beleza, por hoje é so pessoal valeu!!!
e obg.

DEVE EXISTIR UMA MANEIRA MELHOR!!!???

vc precisa renomear seus campos para funcionar sem aspas

vc utilizou qual client do postgreSQL para criar o banco? se ele naum for digamos “ANSI” vai ter esses erros no BD inteiro!!!

utilize sempre o PgAdmin (de preferencia a ultima versao sempre).

Pró
Cada banco tem uma finalidade tente usar Geo Referenciamento do SQL SERVER, ORACLE ou algo do tipo… :wink:

Contra
Tente fazer usar o comando not in do sql nele para ver o que dá…

Olá, estou utilizando o pgAdminIII, onde eu posso verificar se está como “ANSI” nele.

e gostei do pró e do contra.

e em relação as “” um amigo sugeriu isto, ainda nao testei mas vou testar.

"SELECT * FROM oficina.\"Heados\"  WHERE \"Prisma\" = 'VERDE'"

[quote=andrericarte]vc precisa renomear seus campos para funcionar sem aspas

vc utilizou qual client do postgreSQL para criar o banco? se ele naum for digamos “ANSI” vai ter esses erros no BD inteiro!!!

utilize sempre o PgAdmin (de preferencia a ultima versao sempre).

Pró
Cada banco tem uma finalidade tente usar Geo Referenciamento do SQL SERVER, ORACLE ou algo do tipo… :wink:

Contra
Tente fazer usar o comando not in do sql nele para ver o que dá…[/quote]

Olá andrericarte ainda não consegui resolver minha bronca, tbem nao entendi sua dica muito bem em relação aos nome dos campos e o tal do “ANSI”. Criei meu banco no pgAdminIII, será q da pra vc me ajuda!! :lol:
já agradeço! falou valeu!!!

e isso a e mesmo cara como o postgres e meio OO cara e trapabla com schema o uso de aspa e obrigatorio

“SELECT” + ‘"’+ “DESCRICAO” + ‘"’ + “,”+ ‘"’+ “UF” + ‘"’
+“FROM “+ '”’+ “PAX” + '”’+ ‘.’+ ‘"’+ “UF” +’"’);

Ex2
(“SELECT * FROM “PAX”.“CIDADE””);
as duas forma ta certo
mas essa char cAspas = (char) ‘"’; // Codigo 34 do ASC para concatenação de string e bom

[quote=andrericarte]vc precisa renomear seus campos para funcionar sem aspas

vc utilizou qual client do postgreSQL para criar o banco? se ele naum for digamos “ANSI” vai ter esses erros no BD inteiro!!!

utilize sempre o PgAdmin (de preferencia a ultima versao sempre).

Pró
Cada banco tem uma finalidade tente usar Geo Referenciamento do SQL SERVER, ORACLE ou algo do tipo… :wink:

Contra
Tente fazer usar o comando not in do sql nele para ver o que dá…[/quote]

concordo cara com use sempre o pgAdmin lembrando que com o postgres8.3 para caractes em portugues do BRASIL utilizem sempre o encoding win1252