Selecionando de uma view

Prezados, gostaria de saber se existe alguma maneira especial para fazer um select de uma view??? O meu select funciona tranquilo em tabelas mas quando tento fazer um select de uma view simplesmente nada acontece segue o código abaixo aonde “v_estoque_atual é uma view”:

[code]Connection con = DataConnect.connectDb();

 String sql = "select * from dbamv.v_estoque_atual where cd_especie = "+cd_especie;

 Statement stmt = con.createStatement();
   
 ResultSet rs = stmt.executeQuery(sql);
                              
    while (rs.next()){

    int cd_produto = rs.getInt("cd_produto");
    String ds_produto = rs.getString("ds_produto");
    String ds_unidade = rs.getString("ds_unidade");
    int qt_atual = rs.getInt("qt_atual");
    int qt_ult_cons = rs.getInt("qt_ultimo_consumo");
    int qt_cons_medio = rs.getInt("qt_consumo_medio");
    
    int dura = qt_atual/qt_cons_medio;

html.append("<tr>"+
"<td width=&quot;16%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+cd_produto+"</b></font></td>"+
"<td width=&quot;16%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+ds_produto+"</b></font></td>"+
"<td width=&quot;17%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+ds_unidade+"</b></font></td>"+
"<td width=&quot;17%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+qt_atual+"</b></font></td>"+
"<td width=&quot;17%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+qt_ult_cons+"</b></font></td>"+
"<td width=&quot;17%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+qt_cons_medio+"</b></font></td>"+
"<td width=&quot;17%&quot; bgcolor=&quot;#FFCC00&quot;><font color=&quot;#000000&quot;><b>"+dura+"</b></font></td>"+
"</tr>");[/code][/b]

Salve,

Qual banco está usando (dbamv. não conheço este comando a menos que seja necessário no teu servidor de banco de dados)? Qual é o problema. Cara views geralmente funciona semelhante a tabelas, com algumas diferenças como por exemplo apenas leitura.

:okok:

Fico feliz de ter tido alguma resposta,

Brigadão

MarcosSousa solucao = new MarcosSousa();

Explico melhor, o banco é ORACLE e dbamv e o schema v_estoque_atual é o nome da view no banco. Eu sei que o usuario que esta conectando no banco tem permissão somente de leitura desta view.

solucao.provalel(Provalvelmente esta diferença existe ai, né?);

Fora isso, esta tudo funcionando redondo só a view que é rebelde!

[quote=“tbarros”]Fico feliz de ter tido alguma resposta,

Brigadão

MarcosSousa solucao = new MarcosSousa();[/quote]

kakakakakakakak, boa, boa. Mente fértiu hein?

Nunca trabalhei com views no oracle, mas pelo que andei olhando e pela minha experiência em sqlserver, postgre, mysql não precisa de colocar o sherma para referenciar esta view não. Pelo próprio oracle você não consegue executar esta consulta não?

Qual é a exception que está sendo gerada?

:joia:

Opa!

Pelo próprio ORACLE o select da view funciona sem problemas. Na classe não roda! O meu problema é justamente esse, não consigo printar na tela o erro!! Não sei a estrutura do exception para o sql!!! Se puder me passar eu fico amarradão!

Brigadão MarcosSousa!

hummm… crie um servlet, ou uma classe tosca. Coloque todo o conteúdo dentro de um try e um catch e dentro do catch mande imprimir no console e mande aqui para lhe ajudar.

:okok:

Oi MarcosSousa

Cara consegui resolver o problema, usei:

[code]} catch(SQLException e) {

  out.println&#40;&quot;&lt;tr&gt;&lt;td colspan=\&quot;7\&quot; bgcolor=\&quot;navy\&quot;&gt;&lt;font color=\&quot;#FFFFFF\&quot;&gt;&lt;b&gt;Vermelho&#58; Qtd Atual = 0 - Laranja&#58; Qtd Anual&lt;&#40;Cons. Médio * 3&#41; - Verde&#58; outros&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&quot;&#41;;
  out.println&#40;&quot;&lt;/table&gt;&quot;&#41;;    
  out.println&#40;&quot;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;table border=\&quot;1\&quot; width=\&quot;750\&quot; cellspacing=\&quot;1\&quot; cellpadding=\&quot;2\&quot; align=\&quot;center\&quot;&gt;&quot;+
    &quot;&lt;tr&gt;&quot;+
    &quot;&lt;td width=\&quot;100%\&quot; colspan=\&quot;7\&quot; bgcolor=\&quot;red\&quot; align=\&quot;center\&quot;&gt;&lt;br&gt;&lt;Br&gt;&lt;center&gt;&lt;h1&gt;&lt;font color=\&quot;#FFFFFF\&quot; face=\&quot;arial\&quot;&gt;&quot;+e.getMessage&#40;&#41;+&quot;&lt;/font&gt;&lt;/h1&gt;&lt;/center&gt;&quot;+
    &quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;&#41;;
  e.printStackTrace&#40;&#41;;
 
&#125;[/code] 

Usando esse SQLException e o metodo getMessage eu resolvi o problema, existe uma falha em uma função que é usada na view no sql e não no meu código, já passei para o DBA aqui e ele disse que vai resolver.

Aproveitando seu conhecimento, sem querer abusar, tenho outro probleminha que não estou conseguindo resolver. É o seguinte quando passo variáveis entre páginas se a variável contiver caracteres especiais o browser não rende e coloca os caracteres meio esquisito na tela. Como posso fazer para passar essas variáveis mesmo que sejam elas compostas de "ç, Ç, í, Í, ô, Â " e por ai vai??? O browser está duplicando as variáveis!!!

Besculpe o abuso

Abraços

Thanks a lot!

Ué, primeiro pode ser um problema de banco de dados, aí pela própria view você tem que configurar a codificação dos dados. Ou seta o conteúdo da tua página a codificação:

:joia: