CSVファイルを書き込もうとすると途中で切れることがある。
okwave.jp/qa/q4201343.html
blog.livedoor.jp/akf0/archives/51243102.html
Close前に
sw.Flush()
myStream.Flush()
のどちらかを入れるようにする。
今回の場合、上記の処理を入れても解決せず、
streamで一行一行書き出すのをやめ、
いったん変数にcsvのイメージを全て出力し、
最後に一度にwrite()を実行するようにしたところ、
解決した。
okwave.jp/qa/q4201343.html内に上記の説明があった。
blog.livedoor.jp/akf0/archives/51243102.html
Close前に
sw.Flush()
myStream.Flush()
のどちらかを入れるようにする。
今回の場合、上記の処理を入れても解決せず、
streamで一行一行書き出すのをやめ、
いったん変数にcsvのイメージを全て出力し、
最後に一度にwrite()を実行するようにしたところ、
解決した。
okwave.jp/qa/q4201343.html内に上記の説明があった。
ODP.NETコーディング例(Select)
Imports System
Imports System.Data
Imports Oracle.DataAccess.Client
Public Class Form1
'*********************************************
'* ODP接続例
'*********************************************
Public plcnOracle As New OracleConnection
Public plcnOraclecmd As New OracleCommand
Public plcnOracleReader As OracleDataReader
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
On Error GoTo Form1_Load_err
Dim strSQL As String
Dim strCon As String
strCon = "User ID=XXX;"
strCon = strCon & "Password=XXX;"
strCon = strCon & "Data Source=XXX;"
plcnOracle.ConnectionString = strCon
plcnOracle.Open()
plcnOraclecmd.Connection = plcnOracle
plcnOraclecmd.CommandText = "select * from testtable"
plcnOracleReader = plcnOraclecmd.ExecuteReader
Do While plcnOracleReader.Read
Debug.WriteLine(plcnOracleReader("CD") & " " & plcnOracleReader("NAME"))
Loop
plcnOracleReader.Close()
plcnOracle.Close()
Exit Sub
Form1_Load_err:
MsgBox("err")
End Sub
otndnld.oracle.co.jp/easy/dotnet/oo4otoodp/
Imports System.Data
Imports Oracle.DataAccess.Client
Public Class Form1
'*********************************************
'* ODP接続例
'*********************************************
Public plcnOracle As New OracleConnection
Public plcnOraclecmd As New OracleCommand
Public plcnOracleReader As OracleDataReader
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
On Error GoTo Form1_Load_err
Dim strSQL As String
Dim strCon As String
strCon = "User ID=XXX;"
strCon = strCon & "Password=XXX;"
strCon = strCon & "Data Source=XXX;"
plcnOracle.ConnectionString = strCon
plcnOracle.Open()
plcnOraclecmd.Connection = plcnOracle
plcnOraclecmd.CommandText = "select * from testtable"
plcnOracleReader = plcnOraclecmd.ExecuteReader
Do While plcnOracleReader.Read
Debug.WriteLine(plcnOracleReader("CD") & " " & plcnOracleReader("NAME"))
Loop
plcnOracleReader.Close()
plcnOracle.Close()
Exit Sub
Form1_Load_err:
MsgBox("err")
End Sub
otndnld.oracle.co.jp/easy/dotnet/oo4otoodp/
VB.net2010でODP接続すると、以下のエラーが発生する。
構築されているプロジェクトのプロセッサ アーキテクチャ “MSIL” と、
参照 “Oracle.DataAccess, Version=1.102.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342″ の
プロセッサ アーキテクチャ “x86″ の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。
mizkichi23.apples.jp/blog/619
64bit版を参照すると発生するとある。32bit版を参照するようにする。
補足資料
Oracle Clientは後にインストールされたものが優先される。
こちらの方にパスが通る形になる。
ただ、先にインストールされた方を参照させれば、動作は可能。
参照 “Oracle.DataAccess, Version=1.102.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342″ の
プロセッサ アーキテクチャ “x86″ の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。
mizkichi23.apples.jp/blog/619
64bit版を参照すると発生するとある。32bit版を参照するようにする。
補足資料
プラットフォーム(OracleClient) | OracleDataAccess | VB.net2010構成マネージャープラットフォーム | 警告 |
64bit | 4.112.3.0 | AnyCPU | なし |
4.112.3.0 | X86 | あり | |
2.112.3.0 | AnyCPU | あり | |
2.112.3.0 | X86 | あり | |
32bit | 2.112.1.0 | AnyCPU | あり |
2.112.1.0 | X86 | なし |
Oracle Clientは後にインストールされたものが優先される。
こちらの方にパスが通る形になる。
ただ、先にインストールされた方を参照させれば、動作は可能。
ロクイン時に以下のメッセージが表示される。
ORA-28002: the password will expire within 4 days
28002. 00000 - "the password will expire within %s days"
*Cause: The user's account is about to about to expire and the password
needs to be changed
*Action: change the password or contact the DBA
ベンダー・コード28002
パスワードの有効期限が迫っているメッセージである。
Oracle11g以降は、180日の制限がある。
ameblo.jp/archive-redo-blog/entry-10640126490.html
28002. 00000 - "the password will expire within %s days"
*Cause: The user's account is about to about to expire and the password
needs to be changed
*Action: change the password or contact the DBA
ベンダー・コード28002
パスワードの有効期限が迫っているメッセージである。
Oracle11g以降は、180日の制限がある。
ameblo.jp/archive-redo-blog/entry-10640126490.html
Oracleチューニング関係
www.atmarkit.co.jp/ait/articles/0410/21/news098_4.html
上記のうち、2,3については、実行しなくてもV$SQL,V$SQL_PLANの参照は出来る。
V$SQL,V$SQL_PLANについては、sysdba権限でログインしないと参照が出来ないので注意すること。
上記のうち、2,3については、実行しなくてもV$SQL,V$SQL_PLANの参照は出来る。
V$SQL,V$SQL_PLANについては、sysdba権限でログインしないと参照が出来ないので注意すること。