- - PR -
OracleDataAdapterのFill()時にORA-00933エラーが出ます
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-05 16:16
こんにちは。
どうしても抜け出せないところがあり、投稿させて頂きました。 SQLにパラメータを下のようにセットしているのですが、 da.Fill(data)の部分でアプリケーションエラーとなってしまいます。 ORA-00933: SQL command not properly ended パラメータをセットするところが怪しいと思い、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5891&forum=7&7 こちらの記事など参考に他にも調べましたが、 自分のコードの問題点がわかりませんでした(>_<) パラメータを使わず、SQLを直に書きますと、問題はありませんでした。 どなたかご指摘いただけませんでしょうか。 どうぞ宜しくお願い致します。 以下、コードになります。 --コード------------------------------------------------- OracleDataAdapter da = New OracleDataAdapter da.SelectCommand = New OracleCommand da.SelectCommand.Connection = New OracleConnection(ConnectionString) DataSet ds = new DataSet(); Dim paramName() As String = {":userId", ":passwd"} Dim paramValue() As String = {id, pass} Dim query As String = "select * from hogeTable where SHAIN_NO=:userId and PASSWORD=:passwd;" With da.SelectCommand .CommandType = CommandType.Text .CommandText = query .Parameters.Add(paramName(0), OracleType.VarChar, 5).Value = paramValue(0) .Parameters.Add(paramName(1), OracleType.VarChar, 30).Value = paramValue(1) End With da.Fill(data)←ココでエラー ----------------------------------------------------------- | ||||||||||||
|
投稿日時: 2005-10-05 16:28
こんにちは、じゃんぬ です。
それより、このコードって本当に VB ですか? 前半は VB じゃないように思えます。 Dataset はインスタンス化しているものの使っていませんし、 data ってどこから現れたのか不明ですし... etc _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-10-05 16:55
じゃんぬさん、こんにちは。
ご指摘の点、申し訳ありません。vb.netですがコードは私の記述ミスです。 前半部の記述ですが、実はあるクラスがありまして、 その中で下のようなコードを通っています。 それを未熟な私がひとつにまとめようとしたため、あのようなコードを提示してしまいました。 申し訳ありませんでした。 Private da As OracleDataAdapter Public Sub New() da = New OracleDataAdapter da.SelectCommand = New OracleCommand da.SelectCommand.Connection = New OracleConnection(ConnectionString) End Sub また、da.Fill(data)は、da.Fill(ds)の間違いです。 重ね重ね、失礼致しました。 以下、修正コードです。 コード: -------------------------------------------------------------------------------- ***あるクラス*** Private da As OracleDataAdapter Public Sub New() da = New OracleDataAdapter da.SelectCommand = New OracleCommand da.SelectCommand.Connection = New OracleConnection(ConnectionString) End Sub **************** ***問題のコード*** DataSet ds = new DataSet(); Dim paramName() As String = {":userId", ":passwd"} Dim paramValue() As String = {id, pass} Dim query As String = "select * from hogeTable where SHAIN_NO=:userId and PASSWORD=:passwd;" With da.SelectCommand .CommandType = CommandType.Text .CommandText = query .Parameters.Add(paramName(0), OracleType.VarChar, 5).Value = paramValue(0) .Parameters.Add(paramName(1), OracleType.VarChar, 30).Value = paramValue(1) End With da.Fill(ds)←ココでエラー **************** -------------------------------------------------------------------------------- パラメータをaddする部分で問題点ありましたらご教示お願い致します。 | ||||||||||||
|
投稿日時: 2005-10-05 17:01
ここは単に
で良かったんじゃなかったでしたっけ? 結構当てずっぽうですので、間違っていたらごめんなさい。 | ||||||||||||
|
投稿日時: 2005-10-05 17:02
ODP.NETなどまだ不勉強なので、的外れでしたらごめんなさい。
と書かれていますが、SQLに「:」があるとバインド変数とみなされますよね・・・。 これが原因の可能性があるのでは・・・?と思ったんですが、いかがでしょうか? | ||||||||||||
|
投稿日時: 2005-10-05 17:20
こんにちは、じゃんぬ です。
SQL コマンドが正しく終了していません。ですよね。 だから以下のように怪しいと思ったのですよね?
そう思ったのであれば、パラメタを設定するのはやめて、 生の SQL コマンドで試されたりしました? デバッグは、まず原因を探ることを初めに行います。 憶測で悩むより、原因を確定させてから試行錯誤するべきだと思います。 # そういえば、Adapter の場合は Open しなくても良いんでしたよね。 # あやうく指摘するところでした。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-10-05 17:24
NAL-6295です。
最後のセミコロンが余計なのだと思います。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-10-05 17:25 ] [ メッセージ編集済み 編集者: NAL-6295 編集日時 2005-10-05 17:26 ] | ||||||||||||
|
投稿日時: 2005-10-05 17:30
あ〜ごめんなさい。
OTNにいってサンプルコードあさってみたところ、 SQL文中に「:」があるのは正しくて、 パラメータ名称に「:」はなくていいようです。 #いーたさんの指摘が正しいようです。 すみませんでした。 |
1|2|3
次のページへ»