- - PR -
Oracle User_ViewsのTEXT読込
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-14 10:41
Oracle VIEWのSQL文を取得しようと以下のコードを書いたのですが、TEXT内容が
DataGridに表示できませんでした。ウォッチを見るとString ""になっています。 OracleDataReaderで試しに読み込んでみましたが同じでした。 上手く表示させる方法はないのでしょうか。ご教授下さい。 Imports Oracle.DataAccess.Client Imports Oracle.DataAccess.Types ・・・ Dim DBcnn As New OracleConnection Dim DBcmd As New OracleCommand Dim StrSQL As String Dim GetDataSet As New System.Data.DataSet OraConStr = "user id=" & DBUser OraConStr = OraConStr & ";data source=" & DBName OraConStr = OraConStr & ";password=" & DBPass DBcnn.ConnectionString = OraConStr DBcnn.Open() DBcmd.Connection = DBcnn StrSQL = "SELECT OWNER,VIEW_NAME,TEXT FROM DBA_VIEWS" Dim OraDA As Oracle.DataAccess.Client.OracleDataAdapter = New Oracle.DataAccess.Client.OracleDataAdapter(StrSQL, DBcnn) OraDA.Fill(GetDataSet) DBcnn.Close() DataGrid1.DataSource = GetDataSet.Tables(0) |
|
投稿日時: 2006-02-14 11:41
まず、問題の切り分けをしましょう。
とりあえず、その SQL コマンドで期待した結果が取得できているのか、 SQL Plus などで確認してみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2006-02-14 12:49
SQLコマンド自体は正しいのですが
接続するユーザにより実行できたりできなかったりしますよ。 #なんせDBA_VIEWSですから。 接続するユーザでSQL*Plusから接続し、 SQLが実行できるかも確認してください。 |
|
投稿日時: 2006-02-14 13:36
SQL*Plusでは正常に出てきます。
OWNERとVIEW_NAMEも正常に取得できていますが、TEXTが空欄になってしまうのです。 |
|
投稿日時: 2006-02-14 14:49
OracleDataReaderでの話ですが、
InitialLONGFetchSizeには値が何に設定されてますか? #TEXTはLONG型なので、このプロパティが関係ある?と思ってみました。 #デフォルトでは0らしいです。 っとごめんなさい。 勘違いですね、OracleDataReaderではなくOracleDataAdapterでも試してみたと 書いてありましたね。 失礼しました。 #また追加 いや、OracleDataReaderも試されて・・・いる? すみません、混乱してきました・・・。 整理して出直します。 [ メッセージ編集済み 編集者: 夏椰|。σ)o 編集日時 2006-02-14 14:51 ] [ メッセージ編集済み 編集者: 夏椰|。σ)o 編集日時 2006-02-14 14:57 ] |
|
投稿日時: 2006-02-14 17:55
DESC DBA_VIEWS
してみると TEXT は LONG(0) で定義されてますね... 何時間も送れてダブって投稿してしまった・・・ http://otndnld.oracle.co.jp/document/products/oracle10g/101/doc_v6/win.101/B15519-01/featData.htm#i1007197 [ メッセージ編集済み 編集者: かるあ 編集日時 2006-02-14 18:20 ] |
|
投稿日時: 2006-02-14 19:33
ありがとうございます。解決しました。
Dim DBred As OracleDataReader DBcmd.CommandText = "SELECT MAX(TEXT_LENGTH) AS MAXLEN FROM DBA_VIEWS" DBred = DBcmd.ExecuteReader DBred.Read() を追加し、 OracleDataAdapterに以下を追加することでTEXTが取得できました。 OraDA.SelectCommand.InitialLONGFetchSize = DBred("MAXLEN") |
1