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="16%" bgcolor="#FFCC00"><font color="#000000"><b>"+cd_produto+"</b></font></td>"+
"<td width="16%" bgcolor="#FFCC00"><font color="#000000"><b>"+ds_produto+"</b></font></td>"+
"<td width="17%" bgcolor="#FFCC00"><font color="#000000"><b>"+ds_unidade+"</b></font></td>"+
"<td width="17%" bgcolor="#FFCC00"><font color="#000000"><b>"+qt_atual+"</b></font></td>"+
"<td width="17%" bgcolor="#FFCC00"><font color="#000000"><b>"+qt_ult_cons+"</b></font></td>"+
"<td width="17%" bgcolor="#FFCC00"><font color="#000000"><b>"+qt_cons_medio+"</b></font></td>"+
"<td width="17%" bgcolor="#FFCC00"><font color="#000000"><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("<tr><td colspan=\"7\" bgcolor=\"navy\"><font color=\"#FFFFFF\"><b>Vermelho: Qtd Atual = 0 - Laranja: Qtd Anual<(Cons. Médio * 3) - Verde: outros</b></font></td></tr>");
out.println("</table>");
out.println("<br><br><br><table border=\"1\" width=\"750\" cellspacing=\"1\" cellpadding=\"2\" align=\"center\">"+
"<tr>"+
"<td width=\"100%\" colspan=\"7\" bgcolor=\"red\" align=\"center\"><br><Br><center><h1><font color=\"#FFFFFF\" face=\"arial\">"+e.getMessage()+"</font></h1></center>"+
"</td></tr></table>");
e.printStackTrace();
}[/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: