oracle的PRO*C语言中可不可以用append语句?

润宇 2010-08-26 10:47:52
小弟工作不长时间,问一个简单的问题,希望大侠不吝赐教:
由于inser语句不如appen语句效率高,故打算将inser语句换成append语句,但是换成append后编译不通过,不知道pro*c中是否能用append语句呢?我的源代码如下

/* 将车牌信息插入到车牌抓拍交易历史交易流水表中 */
EXEC SQL INSERT INTO STS_RUNNINGNUMBER_CM_HIS (JYPPBZ,SBBZ,ZH,DMH,CDH,CFLX,SXJH1,PSSJ1,TXWJM1,SBCPH1,SBCPYS1,
ZXD1,SXJH2,PSSJ2,TXWJM2,SBCPH2,SBCPYS2,ZXD2,CLSJ) VALUES (
:bz,
:cp.sbbz,
TRIM(:cp.zh),
:cp.dmh,
TRIM(:cp.cdh),
:cp.cflx,
TRIM(:cp.sxjh1),
TO_TIMESTAMP(TRIM(:cp.pssj1),'yyyy-mm-dd hh24:mi:ssxff'),
TRIM(:cp.txwjm1),
:cp.sbcph1,
:cp.sbcpys1,
:cp.zxd1,
TRIM(:cp.sxjh2),
TO_TIMESTAMP(TRIM(:cp.pssj2),'yyyy-mm-dd hh24:mi:ssxff'),
TRIM(:cp.txwjm2),
:cp.sbcph2,
:cp.sbcpys2,
:cp.zxd2,
TO_TIMESTAMP(:time1,'yyyy-mm-dd hh24:mi:ssxff'));

按照网上的说法,只将上面的insert换成append,但是我试了,这样不行,请大侠们指教
...全文
123 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujiezhejiang 2010-10-20
  • 打赏
  • 举报
回复
楼上的语法是正确的,但企业的应用中,肯定会要求在归档模式下的,要不然数据库down了,后就无法恢复了。
所以实际应用中还是比较重要的,性能能提升好几倍,在上万条数据级别时。在应用中对某个表的插入操作用append和nologging操作会大大提高效率(archived模式下)。
gelyon 2010-10-06
  • 打赏
  • 举报
回复
你语句是有问题的,Oracle中插入语句肯定是insert。。。至于你说的append提高效率,这要看情况的,看你数据库是什么模式 archivelog还是 noarchivelog,insert语句中增加append主要是减少redo log而已,因此会效率高点
Noarchivelog(或Nologging)下 : insert append只产生少量redo。
archivelog模式下 :insert append产生的和普通insert产生同样的redo,此时的insert append实际上并不会有性能提高

语法:
INSERT/*+ append */ INTO STS_RUNNINGNUMBER_CM_HIS (..........);

17,088

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧