Olá!
Tive este mesmo problema e, como não consegui arrumar um método
melhor de solucioná-lo, criei um método que pega um string
e transforma o ponto em virugula.
Pode resolver pra você também.
Adelina
Alexandre da Silva Duarte wrote:
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 XMLpublic 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 tabelapublic
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 -----
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
|