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 Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











CONNECTION_REFUSED는 일반적으로 원격 서버에 연결을 시도할 때 발생하는 네트워크 연결 오류입니다. 클라이언트 장치가 서버와의 네트워크 연결 설정을 시도하고 서버가 연결 요청을 거부하면 CONNECTION_REFUSED 오류가 반환됩니다. 일반적인 이유는 다음과 같습니다: 서버가 시작되지 않음, 서버가 추가 연결 요청을 수락할 수 없음, 서버 방화벽이 연결을 차단함 등.

해결 방법: 1. 네트워크 연결을 확인합니다. 2. 서버 상태를 확인합니다. 3. 캐시와 쿠키를 삭제합니다. 4. 방화벽 및 보안 소프트웨어 설정을 확인합니다.

PHP를 사용하여 MySQL 데이터베이스에 연결할 때 PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused 오류 메시지가 표시되는 경우 아래 단계에 따라 이 문제를 해결할 수 있습니다. MySQL 서비스가 정상적으로 실행되고 있는지 확인하려면 먼저 MySQL 서비스가 정상적으로 실행되고 있는지 확인해야 합니다. 서비스가 실행되지 않거나 시작되지 않는 경우 연결 거부 오류가 발생할 수 있습니다. 당신은 할 수

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

데이터 폴더에는 소프트웨어 설정 및 설치 패키지와 같은 시스템 및 프로그램 데이터가 포함되어 있습니다. 데이터 폴더의 각 폴더는 데이터 파일이 파일 이름인 Data 또는 명명된 데이터를 참조하는지 여부에 관계없이 다양한 유형의 데이터 저장 폴더를 나타냅니다. , 모두 시스템이나 프로그램에 의해 사용자 정의된 데이터 파일입니다. 데이터는 데이터 저장을 위한 백업 파일입니다. 일반적으로 meidaplayer, 메모장 또는 워드로 열 수 있습니다.

잘못된 mysql 로드 데이터에 대한 해결 방법: 1. 잘못된 문자가 있는 SQL 문을 찾습니다. 2. 문을 "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE 문자 집합 utf8;"으로 수정합니다.

차이점은 다음과 같습니다. 1. xdata는 일반적으로 독립변수를 나타내고, data는 전체 데이터 세트를 나타냅니다. 2. xdata는 주로 데이터 분석 모델을 구축하는 데 사용되는 반면, data는 데이터 분석 및 통계에 사용됩니다. 회귀 분석, 분산 분석, 예측 모델링의 경우 다양한 통계 방법을 사용하여 데이터를 분석할 수 있습니다. 4. xdata는 일반적으로 데이터 전처리가 필요하며 데이터에는 완전한 원본 데이터가 포함될 수 있습니다.

Humane Ai Pin이 출시된 직후, 원래 광고된 기능의 대부분이 제대로 작동하지 않거나 단순히 누락되었으며, 배터리 수명이 부족했기 때문에 AI 장치가 시장에 출시될 준비가 전혀 되어 있지 않다는 신랄한 리뷰가 나왔습니다.
