数据库varchar2字段写入问题,数组老被截断,请大家帮忙啊,很急的!!!!! varchar2中最大字符数是4000如果不是因为这个,那我也不知道等待高手! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你如果用raw 的话,你就不用转换,直接存放二进制! 字符数组不是以\0结束吗?怎么是00呢?我是从二进制文件中按指定的字节数读取数据放入buf中的,然后将buf发送给软件写入数据库表中,改怎么处理啊?外部程序怎么处理啊,外部打印显示的内容都是对的,就是写入时截断,用raw类型存储也报错,不会只能用blob吧,那我就惨了!!!!希望大家多帮忙啊!!! to 52768361(涵清V3.0):能存,就是只要以遇见00就截断数组 如果使用VARCHAR2来存储你buf中的报文,可以逐个字节转换成字符,然后再插入到字段当中。不过,这样一个字节,就变成两个字符了。取值时,每两个字符,再还原成一个字节即可。举例来说, 报文:12 34 23 4D 00 01 02 34 想办法存到数据库的varchar2中,变成'1234234D00010234'。入库前,实现函数byte2char(unsigned char* buf, int len, char* str);其实,buf为报文的字节表示,str为两倍于len的字符串空间用于存放字符串表示的buf.提取值时,将字段值,再转换成字节流的形式。要实现char2byte(char* str, int len, unsigned char* buf),两个字符一解析,直到解析完毕。 希望我说的足够清晰。 to iihero(阿黑哥):好像听清楚了,就是在存入数据库表之前将二进制数组转换成对应的字符串,原本20个字节的二进制数组变成40个字节的字符串是吧,然后用数据库数据时再将40个字节的字符串还原成20个字节的二进制数组,请问一下这两个函数是不是不是oracle自带的而需要自己编写代码啊?我不是很清楚函数内部应该如何处理啊,能不能麻烦你再讲清楚一点或者写几行关键代码啊,谢谢你!!!!难道这个问题是oracle数据库的bug?????不至于吧,有没有别的解决办法呢?期待中!!!!!! powerbuilder 11.5 连接 ORACLE 10g的问题 关于oracle数据加长问题 oracle登陆问题 触发器无法更新插入的数据 oracle板块人气不佳 如何在一台服务器上禁用IMP功能 在线等待:为什么服务管理器中出现了listenerlistenser? 急用!!谁有用"V Foxpro 6.0"开发的“图书馆管理系统”? 有关复杂图层入库的难题,坛主和高手请进...... oracle中JOB的NEXT_DATE怎么修改 求ORACLE8I的下载。。ORACLE的网站上只有9I 和10G ,谁知道那有下???? 请教一个oracle用PL/SQL调用程序的问题
举例来说,
报文:12 34 23 4D 00 01 02 34
想办法存到数据库的varchar2中,变成'1234234D00010234'。
入库前,实现函数byte2char(unsigned char* buf, int len, char* str);其实,buf为报文的字节表示,str为两倍于len的字符串空间用于存放字符串表示的buf.
提取值时,将字段值,再转换成字节流的形式。要实现char2byte(char* str, int len, unsigned char* buf),两个字符一解析,直到解析完毕。
希望我说的足够清晰。
难道这个问题是oracle数据库的bug?????不至于吧,有没有别的解决办法呢?期待中!!!!!!