- - PR -
Oracle Select文の結果をXMLで表示したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-06-23 14:26
現在、JAVAでSelect文の結果をXMLで表示させたいプログラムを
作成していますが、DBのコネクションに関するエラーが表示され 対処法がよく分かりません。下記、説明を踏まえ、アドバイスを頂けたらと 思います。 <環境> OS --> Windows2000 Pro OracleDatabase --> Oracle8i OracleClient --> Oracle9i Platform --> Eclispse3.0.1 Java --> j2sdk1.4.2_09 <ソースコード> import java.sql.*; import oracle.xml.sql.query.*; import oracle.jdbc.*; Class Test_XML { public static void main(String args[]) throws SQLException { DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver()); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ホストPC名:1521:DB接続識別子","ユーザー","パス"); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("SELECT * FROM table_name"); OracleXMLQuery qry = new OracleXMLQuery(conn,rset); qry.setEncoding("Shift_JIS"); qry.useNullAttributeIndicator(true); String xmlString = qry.getXMLString(); System.out.println(" OUPUT IS:\n"+xmlString); } } <エラー> java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=135290880)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at lipper.Test_XML.main(Test_XML.java:24) Exception in thread "main" 以上、よろしくお願いします。 |
|
投稿日時: 2006-06-23 14:52
XML で云々以前にデータベースへの接続で問題になっているようですが、
oerr ora 12505 12505, 00000, "TNS:listener could not resolve SID given in connect descriptor" // *Cause: The SID in the CONNECT_DATA was not found in the listener's tables. // *Action: Check to make sure that the SID specified is correct. // The SIDs that are currently registered with the listener can be obtained by // typing "LSNRCTL SERVICES <listener name>". These SIDs correspond to // SID_NAMEs in TNSNAMES.ORA, or db_names in INIT.ORA. // *Comment: This error will be returned if the database instance has not // registered with the listener; the instance may need to be started. JDBC thin 接続であれば、DriverManager.getConnection の内容は jdbc:oracle:thin:@hostname:listener_port:ORACLE_SID になります。 「DB接続識別子」とありますがもしかして tnsnames.ora の接続文字列を 指定していたり何てことありません? _________________ もしもし@RMAN 友の会 |
|
投稿日時: 2006-06-23 15:14
もしもしさん、返答ありがとうございました。
DB接続箇所に関して、初歩的なミスでした。 ORACLE_SIDを入れなおしましたので、DB接続はクリアできました。 すみません、それでは、気を取り直して・・・、 ソースコードのOracleXMLQuery qry = new OracleXMLQuery(conn,rset); の箇所でエラーが出ました。 内容は、 java.lang.NoClassDefFoundError: oracle/xml/parser/v2/XSLException です。 実行環境に、XMLParserが必要なのでしょうか? |
|
投稿日時: 2006-06-23 16:55
アドバイスを与えてくれました皆様
無事、SELECTの結果をXML形式で落とすことに成功しました。 Eclipseでの実行時に、外部JARの追加で、元々入れていました xsu12.jarにxmlparserv2.jarを加えましたところ、出力されました。 いろいろとアドバイスを与えてくれました皆様、ありがとうございました。 |
1