2012-04-09 8 views
0

jspを使用して 'conn/as sysdba'を実行する方法を教えてください。jspを使用してoracleステートメントを実行

PreparedStatement stmt = conn.prepareStatement(sql); 

を使用 はjava.sql.SQLExceptionをを示しています。SQL文字列は、クエリされていませんか?

jspを使ってどうすればいいですか?

+0

これはおそらく役立ちます:http://www.javafaq.nu/java-example-code-134.html – Thilo

+0

は、SQL変数の完全なエラースタックトレースと値を提供します。 –

答えて

0

connは、SQL文ではなくSQL * Plusコマンドです。したがって、SQL * Plus(またはSQL * Plusコマンドをサポートする別のクライアント・ツール)でのみ使用できます。 JDBC経由では使用できません。

conn/as sysdbaは、オペレーティング・システム認証を使用してSYSDBAロールが有効なユーザーSYSとしてデータベースに接続するようにSQL * Plusに指示します。この場合のオペレーティング・システム認証では、データベースがインストールされており、ユーザーがオペレーティング・システム・ユーザー "oracle"としてログインしていたサーバーでSQL * Plusを起動する必要があります。 JSPページがこのようなオペレーティング・システム認証を使用することは適切ではない可能性が非常に高いようです。少なくとも、JSPコードを実行しているアプリケーション・サーバーが同じサーバーにインストールされている必要がありますOracleがインストールされ、Oracleデータベースと同じオペレーティング・システム・ユーザーとして実行されていることを確認します。どちらも特にそうは思わない。 SYSDBAロールを有効にしてSYSというデータベースに接続すると、JSPページでは非常に奇妙になります。JSPコードをそのような種類の権限で実行することは非常にまれです。一般的に、Oracleデータベースでは、Oracleが稼動しているマシン以外のものからの接続は、SYSとして許可されません。一般に、DBAのみがそのアカウントでログインし、実際に必要な非常に小さなタスクを実行するためですそのような昇格されたアクセス。

ユーザーがSYSのリモート接続を受け入れるようにOracleを構成し、SYSDBAロールを使用することは可能です。また、JSPコードで接続文字列を設定して、そのアカウントに適切なパスワードを使用できるようにする必要があります。しかし、その両方をしたいと思うのは非常に稀で、そのような実質的なセキュリティホールを開いて、それが本当にあなたがしたいことであるかどうか本当に疑問に思うでしょう。解決しようとしている問題についてもう少し説明できますか?

0

はい、sqlはクエリですが、結果を保存するにはresultQuery = stmt.executeQuery()が必要です。

また、ドライバの接続、DBが存在するマシンの名前、ユーザー名とパスワードを確認してください。

関連する問題