[リストへもどる]
一括表示

投稿時間:2002/11/04(Mon) 12:14
投稿者名:Masa
URL :
タイトル:
4000文字以上をOracleへ格納したい
VB<->OracleをODBCを介してやり取りをしております。
質問なのですが、VBより4000文字以上をOracleへ格納したいのですが、何か方法を
ご存知の方いましたら教えてください。

Oracleの格納エリアの定義は、Long型です。(2GB)まで格納可能だそうです。
VBでString型へは、4000文字以上可能なのですが、OracleへUPATEしようとすると
うまくいきません。

どなたか、お願いします。

投稿時間:2002/11/05(Tue) 00:21
投稿者名:Say
Eメール:
URL :
タイトル:
Re: 4000文字以上をOracleへ格納したい
> 4000文字以上可能なのですが、OracleへUPATEしようとするとうまくいきません。

ODBCもORACLEも詳しくありませんので状況がつかめないのですが…。
(LONG列のやりとりもしたことなかったりしますが…。)  (^_^;

どううまくいかないのでしょう?
AppendChunkで格納できないということですか?
チャンクサイズを小さくしてループさせてもうまくいきませんか?
そもそも「ODBCを介して」とは具体的にどうやっているのでしょう?
ODBC API直接コールですか?何かラッパーオブジェクト使ってませんか?

投稿時間:2002/11/06(Wed) 14:15
投稿者名:Masa
URL :
タイトル:
Re^2: 4000文字以上をOracleへ格納したい
Oracleより提供されているODBCドライバーを利用しております。
利用方法としましては、Jetと同様です。
わかりづらいと思いますので実際の記述を記載します。

Public U_DB As Database, U_WS As Workspace, myRS As Recordset, SQL As String

Set U_WS = DBEngine.Workspaces(0)
Set U_DB = U_WS.OpenDatabase("", False, False, CONNECT_DB & CONNECT_PWD)

Dim MapSQL As String

SQL = "UPDATE TEMP_NAVI_t SET MAP ='" & MapSQL & "'"
SQL = SQL & ", REGFLAG = " & REGNo
SQL = SQL & ", LASTUSER = " & USERID
SQL = SQL & ", LASTDATE = SYSDATE"
SQL = SQL & "  WHERE STORYID =" & EditFileNoSt
    
U_DB.Execute SQL, dbSQLPassThrough

上記のMapSQLがString型で宣言しております。
MapSQLに4000文字以上の文字列が格納されております。
OracleのMAPエリアは、Long型で2GB格納可能です。

上記のようなやり方は、まづいのでしょうか?
ご教授ねがいます。

> > 4000文字以上可能なのですが、OracleへUPATEしようとするとうまくいきません。
>
> ODBCもORACLEも詳しくありませんので状況がつかめないのですが…。
> (LONG列のやりとりもしたことなかったりしますが…。)  (^_^;
>
> どううまくいかないのでしょう?
> AppendChunkで格納できないということですか?
> チャンクサイズを小さくしてループさせてもうまくいきませんか?
> そもそも「ODBCを介して」とは具体的にどうやっているのでしょう?
> ODBC API直接コールですか?何かラッパーオブジェクト使ってませんか?