私はいくつかの列を含むsystesttab
という表を持っています。これらの列の1つはCLOB型で、base64でエンコードされたイメージの文字列を保持することになっています。しかし大きな列のOracle CLOB列の更新
CREATE TABLE systesttab(
...
f_picture CLOB DEFAULT ' ' NOT NULL,
...
)
、私は(100K文字の上に)大きなbase64文字列を持つテーブルを更新しようと、それは失敗し、私のPythonアプリケーションがクラッシュ(に入れさえ...ブロックを除いてみてください)。
UPDATE systesttab SET f_picture = 'data:image/png;base64,iVBORw0KGgoASU ...'
は私もCLOBに値をキャストすることを試みた:
UPDATE systesttab SET f_picture = TO_CLOB('data:image/png;base64,iVBORw0KGgoASU ...')
しかし、私が得るすべては、このエラーである:私はこのことを推測し、今
Input string too long, limit 8192
チャンクサイズについて私に何かを教えようとしていますが、それは本当に役に立ちません。
どのように私は1つのステートメントでテーブルを更新することができますか?
テーブルのcreateステートメントを別に宣言する必要はありますか?
これを単一のステートメントで処理する方法がある場合は、同じテーブルで複数の列を更新する場合にも機能するはずです。
環境:Pythonの3.4 & pyodbc