net如何取出CLOB类型字段的数据

作者&投稿:戏往 (若有异议请与网页底部的电邮联系)
如何获取Oracle中clob类型字段的数据值?~

你想在哪里取?程序中,还是在脚本块中,还是在存储过程中

PL/SQL Developer导入导出工具
PL/SQL Developer位于PLSQL DEV工具的“Tools”菜单下的“Export tables„”和“Import
tables„”下,可以进行数据的导出和导入。
SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在它被创建的事务处理期间有效。
在一些数据库系统里,也使用Text 作为CLOB的别名,比如SQL Server。

最近在做项目中用到Clob这个字段,Clob是存储无限长字符的Oracle字段,用的时候网上找资料找了好久,内容不是很多,大部分都不能用,当然也有可以用的,测试了不同版本,整理了一下,给大家在做项目的时候以参考。

表操作

第一种方案很简单,是数据库表中的某个字段是Clob类型,需要对这个表进行增加修改,网上有很多版本,我试了一种最简单的:

new OracleParameter(":Test", OracleType.Clob,System.Text.Encoding.Unicode.GetByteCount(model.Test)),

就是在创建参数的时候指定一个长度,为什么这样写,不是很清楚,我试过超过4000字符存储和修改是没什么问题的。下面给参数赋值直接赋值就行了,就那么简单!

参数操作

第一种是对表中Clob的操作,还有一种情况是,在Oracle中定义的存储过程和函数,参数的类型是Clob类型,如果用第一种方式的话就会报错,字符超过最大,我想是虽然参数类型是Clob但是传过去的是字符,Oracle默认应该是把传过来的值当做字符看待了,第一种不行,就找了另一种实现方法,我们看下:

public static OracleLob GetOracleClob(string strValue)
{            using (OracleConnection connection = new OracleConnection(connectionString))
{                try
{
connection.Open();                    string str = strValue;                    byte[] array = Encoding.Unicode.GetBytes(str);                    if (array.Length % 2 != 0)
{
array = Encoding.Unicode.GetBytes(str + ' ');
}
OracleCommand lobCmd = connection.CreateCommand();                    // 为访问表定义一个游标 clobvar
string cmdSql = "DECLARE clobvar CLOB;";
cmdSql += " begin ";
cmdSql += " dbms_lob.createtemporary(clobvar, false, 0); :tempLob:= clobvar; ";
cmdSql += " end;";
lobCmd.CommandText = cmdSql;
lobCmd.Parameters.Add(new OracleParameter("tempLob", OracleType.Clob)).Direction = ParameterDirection.Output;
lobCmd.ExecuteNonQuery();                    // 利用事务处理(必须)
OracleTransaction tx = connection.BeginTransaction();
lobCmd.Transaction = tx;                    // 定义一个临时变量
OracleLob tempLob = (OracleLob)lobCmd.Parameters["tempLob"].Value;
tempLob.BeginBatch(OracleLobOpenMode.ReadWrite);
tempLob.Write(array, 0, array.Length);
tempLob.EndBatch();                    // 提交事务                    tx.Commit();                    return tempLob;
}                catch (Exception e)
{                    throw e;
}
}
}

调用:

parameters[0].Value = DbHelperOra.GetOracleClob(TestString);

大家看代码可能明白一些,这里我说下自己的理解,先定义一个Byte,然后拼一个输出Clob类型的字符串,在Oracle执行后输出,然后把Byte写入输出的Clob变量,然后提交事务,我觉得得到的这个Clob类型才是真正的Clob类型,是和Oracle那边是一致的。这边有一个重要的是字符的编码,注意下要和Oracle那边要一致!




ET软件可以导出与CLO软件兼容的DXF-AAMA格式的文件吗?
ET软件可以导出与CLO软件兼容的DXF-AAMA格式的文这种服装专用的CAD软件目前还不能直接转换成AI或CDR格式,只能借助格式工厂,或兼接来完成。为了少损失文件,建议采用兼接的方法。用ET自有的存成DXF格式(国际通用格式),再由设计软件读取DXF文件,然后进行删格。就可以存成AI或者DXF格式了 ...

clo3d需要什么配置
1、双击桌面上的其他程序是否可以打开,以排除是否中毒;2、可以打开可能是3DMAX桌面快捷方式不正确有关的解决方法:删除桌面3DMAX图标,然后点开始---程序---3DMAX2012图标,右键单击---发送到-桌面快捷方式,双击此图标上按一下,应该能够打开。3、如果上述步骤都还没有开放,重复步骤2,找到的3D可执行...

制作衣服的软件appet?
1. PatternMaker: PatternMaker是一款专业的服装设计软件,可以帮助用户制作各种类型的服装图案。该软件提供了各种高级工具,包括平面设计、3D模拟、布料优化等功能。2. CLO: CLO是一款基于3D模拟的服装设计软件,可以帮助用户制作各种类型的服装设计和模型。该软件提供了各种功能,包括模拟布料、添加细节、制作...

哪位大哥知道漂白粉的制取,越详细越好 包括工艺流程图 管道布置图等...
Ca(ClO)2+2H2O=3Ca(OH)2+2HClO 当溶液中碱性增大时,漂白作用进行缓慢。要短时间内收到漂白的效果必须除去Ca(OH)2,所以工业上使用漂白粉时要加入少量弱酸,如醋酸等,或加入少量的稀盐酸。家庭使用漂白粉不必加酸,因为空气中的二氧化碳溶在水里也起弱酸的作用:Ca(ClO)2+H2O+CO2=CaCO3↓+2...

有跟Marvelous Designer一样的软件么
当然CLD3D软件也可以打板,但效率很低,那也不是它的强项,它的强项是模拟,模拟各种属性的面料在静态和动态人体上的着装效果配合强大的电脑硬件配置,可以说该软件是十分强大的一款3D模拟试衣及展示软件,但它必须配合专门的服装CAD软件来使用,比如北方用的多的“日升”“佑手”南方的”ET" "富怡“等...

请问各位医生:临床如何诊断幽门杆菌?
Morris et al将一块胃或十二指肠活检标本插入小块尿素琼脂,由于尿素酶的作用,改变琼脂的pH值,使琼脂由黄色变为粉红色,阴性者颜色不变。应用CLO—test,67%Hp感染在15min内诊断,72%1h内,90%3h内诊断。Varira et al改良后4h RUT Hp检出特异100%,敏感性89%。对窦部活检标本的特异性和敏感性分别为100%和92%...

普栏次氯酸如何使用?
20世纪40年代进行的一项研究调查了大肠杆菌,铜绿假单胞菌,伤寒沙门氏菌和志贺氏痢疾杆菌灭活水平随时间的变化(butterfield et al.,1943)。研究结果表明HClO比ClO-(又名氯漂白剂)可以更有效地灭活这些细菌。这些结果已经被若干研究人员证实,其结论是在灭活细菌方面,HClO比ClO-高效70-80倍(Culp\/Wesner\/Culp,1986)。

歌曲le premier jour du reste de ta vie的歌词
clopin Clopan Sous La Pluie jouer Le Rôle De Sa Vie puis Un Soir Le Rideau Tombe c'est Pareil Pour Tout L'monde rester Debout Mais À Quel Prix sacrifier Son Instinct Et Ses Envies les Plus Essentielles mais Tout Peut Changer Aujourd'hui et Le Premier Jour Du ...

LOL极地大乱斗里面有段凄美的女声音乐叫什么名字
E mi et le di fenit 枕着夏草,如梦似幻的繁星 Gledis clant o pledistiant 像银色的泪珠坠落人间 Enti lai vigins lescayan 茧中的蝴蝶 Mawe poco es vienticlo 要经历七次的茧变 Taan ma taan la la loo ,la la loo 带着淡淡的青色 破茧而出 Plaute tai mi fai o gunema 化作蝴蝶 (...

松茸的分类地位如何?有哪些别名?
松茸[Triclohoma matsutake(Ito et Imai)Sing],中文学名松口蘑,属于担子菌门,担子菌纲,伞菌目,口蘑科,口蘑属。别名有:松蕈、松菇、松蘑、真松茸、鸡丝菌、老人头、老鹰嘴、合菌、台菌、大脚菇、包皮菌、青冈菌等。

政和县19640761935: 如何查询出oracle中clob字段类型的值 -
穰冯车前: select to_char(clob字段) from 表A,就可以看到clob字段的数据.在Oracle中,可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符.其语法为: instr(sourceString,destString,start,appearPosition. 其中sourceString代表源字...

政和县19640761935: 怎么取出oracle clob里面的数据啊 -
穰冯车前: 可以先用JS来限制输入的内容为数字,数据库中可以限制字段类型为数字 ASP isnumeric也可以检查是不是数字

政和县19640761935: 如何获取clob类型的字节长度 -
穰冯车前: blob和clob最大是多少?还是没有最大限制? 它们的最大上限就是4G,Clob可以存储单字节字符数据,Blob可以存储无结构的二进制数据

政和县19640761935: 如何导出含有CLOB字段的表数据 -
穰冯车前: 大家在应用ORACLE的时候, 可能经常会用到对大数据类型的操作, 在这里我简单的总结一下, 希望对大家能有所帮助! 也欢迎大家一起来探讨, 以便共同进步, 共同发展!本文对ORACLE的高手来说是不用看的.1. 如何创建带有CLOB...

政和县19640761935: 如何取得clob字段内容中,指定标签内的值 -
穰冯车前: 不知道您的clob是否定义成XMLTYPE,如果是,那很简单,只需要用extract(“节点路径”)就可以得到节点的值.如果clob定义的是CLOB类型,那么需要用XMLTYPE转换,然后再用extract得到节点的值.下面是我用过的一个例子,我的clob定...

政和县19640761935: java读取clob字段的几种方法 -
穰冯车前: 不需要,只是因为Clob为大数据字段,需要用到“流”的方式读取.这里有个简单的方式供你参考:Clob clob = rs.getClob(1);String clobContent = clob.getSubString(1, (int) clob.length());

政和县19640761935: 怎么读取orcl数据库,表中字段是clob类型的一条数据 -
穰冯车前: 体看代码:写入clob数据 import java.io.Writer; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestClobIn { public static void main(String args[]){ String data="this is a ...

政和县19640761935: 如何提取完整的CLOB类型数据,数据库是oracle11 -
穰冯车前: 你可以将该字段的类型转变成to_char

政和县19640761935: 如何在map类型的list里面取出CLOB数据 -
穰冯车前: 解决方案:Map集合中提供了两种取出方式:<1>. 返回值类型Set<k> 方法是: keySet() :返回此映射中包含的键的 Set 视图 将map中所有的键存入到Set集合,因为set具备迭代器,所有迭代方式取出所有的键 再根据get()方法 ,获取每一...

政和县19640761935: 怎样读出oracle中Clob类型的数据 -
穰冯车前: 这样读取: declare/*声明PL/SQL中程序块中的变量info_var,用户存放查询到的info列的数据,其类型必须和表中的字段类型一致*/info_var clob;--查询数据长度amount integer;--偏移量,查询起始位置offset integer;--需要打印的字节...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网