Estou desenvolvendo um sistema online com Java + Flex + Oracle, e estou com problema para conseguir ler uma SQLX do oracle em java.
rodo a seguinte sql no oracle
SELECT
XMLELEMENT("NODE",
XMLATTRIBUTES(
NVL(M.MEN_RECNO, 0) AS "MEN_RECNO",
NVL(M.MEN_DESCRICAO, 0) AS "MEN_DESCRICAO",
NVL(M.MEN_RECNO_PAI, 0) AS "MEN_RECNO_PAI"
),
( SELECT XMLAGG(
XMLELEMENT("NODE",
XMLATTRIBUTES(
NVL(F.MEN_RECNO, 0) AS "MEN_RECNO",
NVL(F.MEN_DESCRICAO, 0) AS "MEN_DESCRICAO",
NVL(F.MEN_RECNO_PAI, 0) AS "MEN_RECNO_PAI",
P.PER_ALTERAR AS "PER_ALTERAR",
P.PER_INSERIR AS "PER_INSERIR",
P.PER_EXCLUIR AS "PER_EXCLUIR"
)
)
ORDER BY F.MEN_ORDEM
)
FROM MENU F
WHERE F.MEN_RECNO_PAI = M.MEN_RECNO
)
) AS MENU
FROM MENU M
INNER JOIN PERMISSAO P ON P.MEN_RECNO = M.MEN_RECNO
WHERE M.MEN_RECNO_PAI IS NULL AND M.MOD_RECNO = '015' AND P.GUS_RECNO = 1
ORDER BY M.MEN_ORDEM
A SQL me retorna certinho oq preciso para montar o menu da minha aplicação, dai con esse passo pronto fui pro java para fazer um servlet aonde escrevesse isso e eu consumisse no flex para montar um treeview.
Bom antes de montar o servlet fui fazer uns teste com uma classe simples em java que esta abaixo
[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Statement;
public class TesteConexao {
public static void main(String[] args) throws SQLException {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@//127.0.0.1:8080/banco”, “sys”, “123”);
Statement stmt = conn.createStatement();
String sql =
" SELECT"+
" XMLELEMENT(" + '"' + "NODE" + '"' + "," +
" XMLATTRIBUTES("+
" NVL(M.MEN_RECNO, 0) AS " + '"' + "MEN_RECNO" + '"' + "," +
" NVL(M.MEN_DESCRICAO, 0) AS " + '"' + "MEN_DESCRICAO" + '"' + "," +
" NVL(M.MEN_RECNO_PAI, 0) AS " + '"' + "MEN_RECNO_PAI" + '"' +
" )," +
" ( SELECT XMLAGG("+
" XMLELEMENT(" + '"' + "NODE" + '"' + ","+
" XMLATTRIBUTES("+
" NVL(F.MEN_RECNO, 0) AS " + '"' + "MEN_RECNO" + '"' + "," +
" NVL(F.MEN_DESCRICAO, 0) AS " + '"' + "MEN_DESCRICAO" + '"' + "," +
" NVL(F.MEN_RECNO_PAI, 0) AS " + '"' + "EN_RECNO_PAI" + '"' + ","+
" P.PER_ALTERAR AS " + '"' + "PER_ALTERAR" + '"' + "," +
" P.PER_INSERIR AS " + '"' + "PER_INSERIR" + '"' + "," +
" P.PER_EXCLUIR AS " + '"' + "PER_EXCLUIR" + '"' +
" )"+
" )"+
" ORDER BY F.MEN_ORDEM"+
" )"+
" FROM MENU F"+
" WHERE F.MEN_RECNO_PAI = M.MEN_RECNO"+
" )"+
" ) AS MENU" +
" FROM MENU M"+
" INNER JOIN PERMISSAO P ON P.MEN_RECNO = M.MEN_RECNO"+
" WHERE M.MEN_RECNO_PAI IS NULL AND M.MOD_RECNO = '015' AND P.GUS_RECNO = 1"+
" ORDER BY M.MEN_ORDEM";
ResultSet rset = stmt.executeQuery(sql);
while (rset.next())
{
System.out.println(rset.getString());
}
stmt.close();
}
}
[/code]
E me deparei com os eguinte problema, o java executa a sql sem dar erro mas qdo vai mostrar o conteudo do rset ele mostra nul.
A sql que eu monto dinamicamente esta certa pois eu ja dei um System.out.println e oq mostrou rodou perfeitamente no oracle.
Alguem poderia me dizer qual oq estou fazendo errado???