perl 如何存储超过4000的字段进入oracle

问题描述

perl 如何存储超过4000的字段进入oracle

if ($row->{interfacetype} eq 'DATA') {
my $sth = $dbh->prepare(qq{
INSERT INTO DEV_AUDIT_RECORD (
RECORD_ID, CREATE_TIME, MEMBER_ID, AUDIT_STATE, AUDIT_TYPE, AUDIT_CONTENT, AUDIT_CONTENT_ORIGIN,
PUBLISHER_ID, PUBLISHER_NICKNAME, PUBLISHER_IP, PUBLISH_TIME,
SECTION, MESSAGE_ID, MESSAGE_ORIGIN, MESSAGE_CLASS, MESSAGE_REPRINT,
CONTENT_ID, CONTEXT_ID, CONTEXT,
ORDER_TYPE, USER_TYPE)
VALUES (
DEV_AUDIT_RECORD_ID_SEQUENCE.nextval, :create_time, :member_id, :audit_state, :audit_type,?, :audit_content_origin,
:publisher_id, :publisher_nickname, :publisher_ip, :publish_time,
:section, :message_id, :message_origin, :message_class, :message_reprint,
:content_id, :context_id, :context,
:order_type, :user_type)
RETURNING RECORD_ID INTO :record_id
});

if (!$sth or $dbh->err()) {
$logger->info($dbh->errstr());
}
else{
use utf8;
my ($commp, $dept, $product, $sub) = get_section($row->{section});
my $message_origin = encode('gbk', decode('utf-8', $product));
my $message_class = encode('gbk', decode('utf-8', $sub));
my $content_nohtml = $msg->{CONTENT};
$content_nohtml =~ s/</?[^>]*>//ig;
$sth->bind_param(":create_time", strftime('%Y-%m-%d %H:%M:%S', localtime()));
$sth->bind_param(":member_id", $msg->{USERID});
$sth->bind_param(":audit_state", 0);
$sth->bind_param(":audit_type", 1); #$row->{audit_type}
$sth->bind_param(":audit_content_origin", $content_nohtml);
$sth->bind_param(":publisher_id", $msg->{USERID});
$sth->bind_param(":publisher_nickname", $msg->{NICKNAME});
$sth->bind_param(":publisher_ip", $msg->{USERIP});
$sth->bind_param(":publish_time", $msg->{PUBTIME});
$sth->bind_param(":section", $row->{section});
$sth->bind_param(":message_id", $row->{messageid});
$sth->bind_param(":message_origin", $message_origin);
$sth->bind_param(":message_class", $message_class);
$sth->bind_param(":message_reprint", $row->{contenttype});
$sth->bind_param(":content_id", $msg->{CONTENTID});
$sth->bind_param(1, $msg->{CONTENT});
$sth->bind_param(":context_id", $msg->{CONTEXTID});
$sth->bind_param(":context", $msg->{CONTEXT});
$sth->bind_param(":order_type", $row->{priority});
$sth->bind_param(":user_type", $msg->{USERTYPE});
$sth->bind_param_inout(":record_id", my $new_id, 1e17);
$sth->execute;
if ($dbh->err()) {

写入保存失败的新增数据

$logger->debug("store to the file:".$config{restoreDirectory}."/saved.dat");
#my $db = DBM::Deep->new(

file => $config{restoreDirectory}."/saved.dat",

type => DBM::Deep->TYPE_ARRAY

);

#my $len = $db->length();
#$db->put($len, $row);
$logger->error($dbh->errstr(enter code here

其中AUDIT_CONTENT为超过4000字符的字段,oracle使用的是clob。 运行报错为ORA-01461: can bind a LONG value only for insert into a LONG column (DBD ERROR: OCIStmtExecute)
查询过java在处理这个种情况的时候是调用的oracle的组件,php在处理这个情况的时候使用 php_oci扩展,问下perl在遇到这种情况下有什么解决方案,在不拆字段,不组装数据的前提下

时间: 2024-11-17 02:16:29

perl 如何存储超过4000的字段进入oracle的相关文章

请教oracle中向colb型字段插入超过4000长度字符的方法,oracle版的人太少了,所以来这里问,问题解决马上结帖

问题描述 我有个字符串长度超过4000了,请问怎么插入进clob型字段中,请根据我的代码写个解决方法,谢谢stringstr="aaaaaaaaaaaaaaaaaa.....";(长度超过4000)stringsql="insertintotablename(fid,fremark)values('1',???)"; 上面问号的部分我不会写了 解决方案 解决方案二:上面那个是个例子,我实际的程序还有个问题,就是我那个超过4000长度的字符串中包含逗号了,能插入进去吗

sql server-SQL SERVER2012某字段超过另外一个字段的值,触发邮件

问题描述 SQL SERVER2012某字段超过另外一个字段的值,触发邮件 SQL SERVER2012某字段超过另外一个字段的值,触发邮件 最好能有个小的说明 解决方案 字段超过另一个字段,可以在插入或者修改触发器中拦截,然后判断,发送邮件. 这里有一个插入触发器+发邮件的完整的例子,你可以参考: 发送邮件触发器http://blog.csdn.net/tongyu2009/article/details/8105532 至于修改触发器,是一个道理,你google下就有. 解决方案二: htt

android下sqlite的blob类型不能存储超过2兆的文件

问题描述 android下sqlite的blob类型不能存储超过2兆的文件 android下sqlite的blob类型不能存储超过2兆的文件,存储1M多的文件都没问题, 超过两兆程序马上就崩溃,大家是否发现了这个情况. 解决方案 sqlite本来就是轻量级的数据库,数据库就是小数据类的存储,不然存图片,存文件 那就应该叫服务器了 解决方案二: 我有一个建议,你把图片分块存储,不要整个存入blob,取出的时候做个拼接 解决方案三: 把文件或者图片存储在文件系统中,sqlite中只存储文件的目录

Elasticsearche僵尸网络:超过4000台服务器遭到两款POS 恶意软件感染

本文讲的是Elasticsearche僵尸网络:超过4000台服务器遭到两款POS 恶意软件感染, ES服务器中发现POS恶意软件 Kromtech 安全中心最近对一些可以公开访问的ElasticSearch节点进行研究后发现,在ElasticSearch文件结构中存在一些与其没有任何关系的可疑索引名称. 原来,在这些ElasticSearch服务器中有部分存放了AlinaPOS和JackPOS恶意软件的C&C基础架构文件.这两种都是使用一系列不同技术来擦拭信用卡详细信息的POS终端恶意软件.

得润电子定向增发不超过4000万股获证监会通过

网易财经11月24日讯 得润电子周三晚间发布公告称,公司于11月24日接到中国证监会通知,公司非公开发行股票的申请获得通过. 得润电子此前公告显示,公司拟定向增发不超过4000万股,募集资金将投向CPU连接器产品建设等5个项目. 此次发行对象包括证券公司.基金公司等不超过10名投资者,发行价格不低于15.03元/股.此次非公开发行预计募集资金6亿元,募集资金净额约为5.7亿元,用于CPU连接器产品建设.双倍速率同步动态随机存储器插座生产技术改造.LED连接器.汽车连接器及线束.研发中心建设等5个

南京市电子商务发展迅速,去年贸易额超过4000亿元

本报讯 记者从南京市商务局获悉,南京市电子商务发展迅速,去年贸易额超过4000亿元,其中http://www.aliyun.com/zixun/aggregation/7676.html">网络购物超过350亿元.目前南京市注册的电子商务企业已达3.3万家,网络购物平台企业30多个,团购网站10个,交易规模亿元以上企业超10家,交易规模千万元以上电子商务企业近30家.该市正起草<南京市电子商务企业认定管理办法>,以进一步规范电子商务企业的认定行为. (宋晓华)

甲骨文推出业界首款云融合存储 助力企业集成本地和Oracle云存储

 甲骨文推出业界首款云融合存储,开创了大型公有云提供商将自己的云服务与自己在企业本地部署的高性能NAS存储系统集成的先河.最新推出Oracle ZFS存储系统产品之一的Oracle ZFS云软件,可让企业便利.无缝地将数据或应用程序迁移至云端,在优化价值.节约成本的同时,无需外部云网关,且无需支付软件授权和云访问授权的费用,这意味着本地部署供应商从其基础架构平台访问公有云将无需支付"云接入税"(cloud entrance taxes),这使得甲骨文的总体拥有成本比业界某个竞争对手低了

在不升级 mysql 的情况下直接使用 mysql utf8 存储 超过三个字节的 emoji 表情

由于现在数据库的版本是5.5.2,但是看网上说要直接存储emoji表情,需要升级到5.5.3然后把字符集设置为utf8mb4,但是升级数据库感觉属于敏感操作. 考虑了多久之后直接考虑使用正则来替换,但是emoji表情的unicode码太多了,在网上找了一份代码,还是2年前更新的,想了想还是算了. PHP 版本 最简单的办法就是直接找到接受到的文本中的字符串中4个字节的内容,做rawurlencode编码,再入库.输出的时候再替换回来,然后再用rawurldecode转码回unicode到手机再解

动态执行超过4000个字符的SQL

sp_executesql 可能用 exec sp_executesql @sqltext,@paramstring,@urlM_ID output 来得到动态执行中返回值,@sqltext的长度可能超过了4000字符,可以使用nvarchar(max)解决,类似于: declare @request1 nvarchar(4000) declare @request2 nvarchar(4000) declare @request3 nvarchar(max) – Fill @request1