C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: ODP.netを用いてSQL文を送る際のエラー
(過去ログ 95 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 6 記事 (1 - 6 表示)] <<
0
>>
■56594
/ inTopicNo.1)
ODP.netを用いてSQL文を送る際のエラー
▼
■
□投稿者/ ハル
(1回)-(2011/01/21(Fri) 03:43:42)
分類:[VB.NET/VB2005 以降]
2011/01/21(Fri) 03:44:32 編集(投稿者)
■開発環境
Windowsアプリケーション
言語:VB.NET (2010)
ORACLEバージョン:ORACLE 11gR2
ORACLEとのインタフェース:ODP.NET
はじめまして。
いつも大変参考にさせていただいております。
ODP.netを用いてDBに接続することはできたのですが、SQLコマンドを送ると必ずエラーがかえってきてしまいます。
エラーと書きましたが、コマンドライン上で返ってくるエラーを指しています(ORA-/////)。
もちろん、SQL文に間違いがあるのかと思いいろいろ試してみましたが、コマンドライン上では問題なく動作するSQLをodp.netを通して
DBに投げても、同様のエラーが返ってきてしまいました。(返ってくるエラーの種類は様々で、投げるSQL文によって異なるようでした)
お手上げ状態です。どなたかご教授おねがいします。
引用返信
編集キー/
編集
■56596
/ inTopicNo.2)
Re[1]: ODP.netを用いてSQL文を送る際のエラー
▲
▼
■
□投稿者/ shu
(376回)-(2011/01/21(Fri) 07:44:25)
■
No56594
(ハル さん) に返信
どうやって記述したか分からなければ何ともいえません。エラー内容も省略してしまっているし。
接続していることはどうやって確認されたのでしょうか?
単純なSelect * From テーブル でも発生するのでしょうか?
引用返信
編集キー/
編集
■56633
/ inTopicNo.3)
Re[2]: ODP.netを用いてSQL文を送る際のエラー
▲
▼
■
□投稿者/ ハル
(2回)-(2011/01/23(Sun) 03:17:24)
■
No56596
(shu さん) に返信
> どうやって記述したか分からなければ何ともいえません。エラー内容も省略してしまっているし。
> 接続していることはどうやって確認されたのでしょうか?
>
> 単純なSelect * From テーブル でも発生するのでしょうか?
返信ありがとうございます。
どうやら;を最後につけた状態でExecuteReaderするとエラーになるようでした。
("select *from table"はいけましたが、"select *from table;"はエラー)
insert deleteなどはいけましたが、
"DESC テーブル"だけは
ORA-00900 SQL文が無効です。
のエラーが依然として返ってきてしまっています。
引用返信
編集キー/
編集
■56634
/ inTopicNo.4)
Re[3]: ODP.netを用いてSQL文を送る際のエラー
▲
▼
■
□投稿者/ やじゅ
(1822回)-(2011/01/23(Sun) 11:36:32)
■
No56633
(ハル さん) に返信
> "DESC テーブル"だけは
> ORA-00900 SQL文が無効です。
> のエラーが依然として返ってきてしまっています。
そうしたら、「DESC テーブル」で検索してみるといいんじゃないの。
引用返信
編集キー/
編集
■56726
/ inTopicNo.5)
Re[3]: ODP.netを用いてSQL文を送る際のエラー
▲
▼
■
□投稿者/ 裕猫
(209回)-(2011/01/28(Fri) 09:02:18)
■
No56633
(ハル さん) に返信
> ■
No56596
(shu さん) に返信
>>どうやって記述したか分からなければ何ともいえません。エラー内容も省略してしまっているし。
>>接続していることはどうやって確認されたのでしょうか?
>>
>>単純なSelect * From テーブル でも発生するのでしょうか?
>
> 返信ありがとうございます。
> どうやら;を最後につけた状態でExecuteReaderするとエラーになるようでした。
> ("select *from table"はいけましたが、"select *from table;"はエラー)
>
> のエラーが依然として返ってきてしまっています。
using (OracleCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select * from table";
using (OracleDataReader dr = cmd.ExecuteReader())
{
dr.Read();
}
}
ODPでのサンプルです。C#です。VBはusingありましたっけ?その辺不明ですが、私の所はこれでデータの読み込みをしています。
引用返信
編集キー/
編集
■56727
/ inTopicNo.6)
Re[3]: ODP.netを用いてSQL文を送る際のエラー
▲
▼
■
□投稿者/ 魔界の仮面弁士
(2037回)-(2011/01/28(Fri) 09:31:09)
■
No56633
(ハル さん) に返信
> insert deleteなどはいけましたが、
> "DESC テーブル"だけは
DESC (DESCRIBE) コマンドは SQL*Plus 独自のコマンドであって、
PL/SQL そのものではありません。ゆえに ODP.NET では実行できません。
http://www.shift-the-oracle.com/sqlplus/command/
http://www.oracle.co.jp/forum/message.jspa?messageID=35003275
代わりに以下のような手法を試してみてください。
(案1) 『SELECT 〜 FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 〜』を利用する。
(案2) Oracle.DataAccess.Client.OracleDataReader クラスの GetSchemaTable メソッドを利用する。
Dim tbl As DataTable
Dim cmd As New OracleCommand(sql, con)
Dim r = cmd.ExecuteReader()
tbl = r.GetSchemaTable()
r.Close()
(案3) DBMS_SQL パッケージを下記の例8のように用いる。
http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/appdev.111/E05686-02/d_sql.htm
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-