Oracle中Clob类型处理解析
系统环境 xp+2.0+oracle9i
表结构(由于是测试,表结构随便建了一张) XX
字段名
类型
ID
VARCHAR2(70)
TEST
CLOB
测试
方式1:直接将CLOB的值拼写在SQL语句中。
代码:
string id = Guid.NewGuid().ToString();
OracleCommand cmd = Conn.CreateCommand();
cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";// data是一个变量,存储你要插入的字符串
cmd.ExecuteNonQuery();
情况分析:
当data的长度大于4000时报错(ORA-01704:文字字符串过长),小于或等于4000时正常插入。
原因分析:
之所以会出现长度大于4000时报错,是因为Oracle中有SQL语句中两个单引号之间的字符数不能大于4000的限制。'" + data + "' data在sql语句之间,当data的值大于4000个字节时就会报错。
解决办法:
这种方式比较棘手,但有更好的方式,下边会讲到 。
方式2:采用参数形式。
代码:
string id = Guid.NewGuid().ToString();
OracleCommand cmd = Conn.CreateCommand();
cmd.CommandText = "insert into xx(id,test) values('" + id + "',:p1)";
OracleParameter p1 = new OracleParameter("p1", OracleType.Clob);
p1.Value = data; // data是一个变量,存储你要插入的字符串
cmd.Parameters.Add(p1);
cmd.ExecuteNonQuery();
情况分析:
采用这种方式能够正常插入。所以推荐用这种方式。
原因分析:
无
解决办法:
无
方式3:采用参数形式,但是参数类型写为OracleType. NVarChar
代码:
string id = Guid.NewGuid().ToString();
OracleCommand cmd = Conn.CreateCommand();
cmd.CommandText = "insert into xx(id,test) values('" + id + "',:p1)";
OracleParameter p1 = new OracleParameter("p1", OracleType. NVarChar);
p1.Value = data; // data是一个变量,存储你要插入的字符串
cmd.Parameters.Add(p1);
cmd.ExecuteNonQuery();
情况分析:
为什么要写这种方式,因为这种方式和采用NHibernate的方式很相似,先看看在这种方式会产生什么情况。当data的字节数在0-2000之间时正常插入,大于4000时也正常插入,但在2000-4000时则失败,报错(ORA-01461:仅可以插入 LONG列的LONG值赋值)
原因分析:
没有采用对应的Oracle类型。
解决办法:
采用OracleType.Clob
下边采用NHibernate插入数据,NHibernate具体怎用不在本次讨论范围。
NHibernate采用的版本为1.2.1.4000。
下边大至把简要配置写下。
App.config
value="Data Source=Orcl_192.168.0.232;User ID =icqs_test;Password=icqs_test" /> key="hibernate.adonet.batch_size" value="100" /> xx.cs using System; using System.Collections.Generic; using System.Text; namespace Test.Enties { [Serializable] public class Xx { public Xx() { } private string id; public virtual string Id { get { return id; } set { id = value; } }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









CONNECTION_REFUSED は、通常、リモート サーバーに接続しようとしたときに発生するネットワーク接続エラーです。クライアント デバイスがサーバーとのネットワーク接続を確立しようとして、サーバーが接続要求を拒否すると、CONNECTION_REFUSED エラーが返されます。一般的な理由には、サーバーが起動していない、サーバーがこれ以上の接続要求を受け入れることができない、サーバーのファイアウォールが接続をブロックしているなどがあります。

解決策: 1. ネットワーク接続を確認する; 2. サーバーの状態を確認する; 3. キャッシュと Cookie をクリアする; 4. ファイアウォールとセキュリティ ソフトウェアの設定を確認する; 5. 他のネットワークを使用してみるなど。

PHP を使用して MySQL データベースに接続するときに次のエラー メッセージが表示された場合: PHPWarning:mysqli_connect():(HY000/2002):Connection拒否された場合は、以下の手順に従ってこの問題の解決を試みることができます。 MySQL サービスが正常に動作しているかどうかを確認するには、まず MySQL サービスが正常に動作しているかどうかを確認する必要がありますが、サービスが動作していない、または開始に失敗している場合は、接続拒否エラーが発生する可能性があります。あなたはできる

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

データ フォルダーには、ソフトウェア設定やインストール パッケージなどのシステム データとプログラム データが含まれています。データ フォルダー内の各フォルダーは、データ ファイルがファイル名データを参照しているか拡張子を参照しているかに関係なく、異なる種類のデータ ストレージ フォルダーを表します。 , これらはすべて、システムまたはプログラムによってカスタマイズされたデータ ファイルです。データは、データ ストレージのためのバックアップ ファイルです。通常、meidaplayer、メモ帳、または Word で開くことができます。

mysql ロード データの文字化けの解決策: 1. 文字化けしている SQL ステートメントを見つけます; 2. ステートメントを「LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE Character set utf8;」に変更します。

違いは次のとおりです: 1. 通常、xdata は独立変数を指しますが、data はデータ セット全体を指します。2. xdata は主にデータ分析モデルの確立に使用され、data はデータ分析と統計に使用されます。3. xdata は通常、使用されます。回帰分析、分散分析、予測モデリングの場合、さまざまな統計手法を使用してデータを分析できます; 4. xdata には通常、データの前処理が必要であり、データには完全な元のデータが含まれる場合があります。

Humane Ai Pin の発売直後、痛烈なレビューにより、当初宣伝されていた機能のほとんどが適切に動作しないか単に欠落しており、バッテリー寿命が短かったため、この AI ガジェットは市場に出す準備ができていなかったことが明らかになりました。
