Marcelo,
 
        Eu até que pensei nisto mas eu nem estou trabalhando com variáveis. Eu apenas leio (select) registros e gero um XML, depois leio este mesmo XML e gravo os registros de novo na tabela. A tabela é a EMP do usuário SCOTT, e as colunas que estão gerando o erro são a SAL e a COMM (ambos são number 7,2). O Oracle que estou usando é em inglês. O XML é gerado com ponto mas quando vou ler e gravar de volta na tabela a classe requer que seja vírgula. As duas classes estão abaixo:
 
// Gera o XML
public class TesteQueryDB {
 
  public static void main(String[] args) throws Exception {
 
  Connection conn=null;
 
  try {
 
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@web:web","scott","tiger");
 
  } catch (ClassNotFoundException e) {
      e.printStackTrace();
      System.exit(1);
  } catch (SQLException e) {
      e.printStackTrace();
      System.exit(1);
  }
 
  OracleXMLQuery qry = new OracleXMLQuery(conn,"select * from emp");
 
  String xmlString = qry.getXMLString();
 
  FileWriter fw = new FileWriter("c:\\JavaXmlTeste\\empalex.xml");
  BufferedWriter bw = new BufferedWriter(fw);
  PrintWriter pw = new PrintWriter(bw);
 
  pw.print(xmlString);  // gera arquivo .xml
 
  qry.close();
  pw.close();
  bw.close();
  fw.close();
  conn.close();
 
  System.out.println("Xml gerado com sucesso");
  }
}
 
 
// Le o XML para dentro da tabela
public class TesteSaveDB {
 
  public static void main(String[] args) throws Exception {

  Class.forName("oracle.jdbc.driver.OracleDriver");
  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@web:web","scott","tiger");
 
  OracleXMLSave save = new OracleXMLSave(conn,"emp");
  URL url = new URL("file://c/JavaXmlTeste//empalex.xml");
 
  int rowCount = save.insertXML(url);
  save.close();
 
  System.out.println("registros inseridos " + rowCount );
  conn.close();
  }
}
 
Obrigado,
Alexandre
----- Original Message -----
Sent: Monday, March 19, 2001 2:25 PM
Subject: Re: [java-list] Xml Sql Utility da Oracle - problema com o formato de números

  Alexandre, esse erro pode nao ser por formatacao de numero, esse erro e generico voce pode estar tentando fazer uma conta com um varchar em vez de um numero, verifique se os conteudos das variaveis sao realmente NUMBER.
  O oracle que voce esta usando esta em lingua portuguesa ou inglesa ?
 
 
----- Original Message -----
To: SouJava
Sent: Monday, March 19, 2001 8:47 AM
Subject: [java-list] Xml Sql Utility da Oracle - problema com o formato de números

Pessoal,
 
        Alguém usa o Xml Sql Utility da Oracle ? A geração do Xml a partir da classe OracleXMLQuery está dando certo,  sendo que ela gera os campos númericos com o ponto como separador decimal. Pego o mesmo Xml gerado pela classe OracleXMLQuery e tento gravar os seus registros usando a classe OracleXMLSave, só que ocorre a Exception abaixo:
 
oracle.xml.sql.OracleXMLSQLException: java.sql.SQLException: ORA-01722: invalid number
 
        Aí eu abro o Xml com um editor qualquer e altero os pontos dos campos númericos para vírgula, aí a classe OracleXMLSave grava ok.
        Alguém já passou por isso ou sabe algo a respeito ?
 
 
Obrigado,
Alexandre

Responder a