试过很多产生CSV文件的方法后,发现用Oracle的DBMS_OUTPUT就可以实现,例子代码如下:
1 创建一个数据库表
Drop TABLE VEHICLE;
Create TABLE VEHICLE (
MAKE VARCHAR2(256) NOT NULL,
MODEL VARCHAR2(256),
REGISTRATION_NO NUMBER(15) NOT NULL primary key,
AGE NUMBER(2,1) NOT NULL,
CATEGORY VARCHAR(1) NOT NULL,
MILAGE NUMBER(15,2) NOT NULL,
LAST_SERVICE_DATE DATE NOT NULL
);
2.创建PL/SQL包
-- Package Header Definition
CREATE OR REPLACE PACKAGE ISS_CSV IS
PROCEDURE WCSV(
inRegStart IN NUMBER,
inRegSt..
在开发ADO应用中,老是碰到很多莫名奇妙的错误,Idispatch error 3121就是其中一个,也查过网上的解决办法,不太好用,所以写出来大家共享一下,这个错误是在执行一条SQL命令超时时报的错误,不是指链接超时,在Connection对象里有一个参数ConnectionTimeOut,它是指建数据库链接时的超时,如执行
m_pConnection->ConnectionTimeOut = 15
m_pConnection->Open(newVal,"","",adConnectUnspecified)
如果超过15秒,还没建立数据库链接,就会出错了。
也不是指连接空闲的时间,而是指执行SQL语句时的超时,它是通过CommandTimeo..
介绍
在某些应用程序中,往往需要将数据库表中的数据取出来存为CSV文件。看起来是很容易的一件事情,但是如果要做到灵活,而且要在取大数据量的表时保证足够的性能,却需要认真考虑。本CSV文件生成器的设计考虑满足以下指标:
1、支持多种不同的数据库,如Oracle,SQL Server等
2、程序尺寸要小
3、足够的性能
程序的设计
基本的思路是采用C++通过ATL作出一个COM组件,然后用解释性语言如C#来调用。数据库访问采用ADO来实现,从本人的经验来说,我是不太愿意使用ADO的,虽然它很通用各种数据库都可以访问,微软也很推崇,但是它对多线..
在实际应用中,为了分页或查询性能的需要,我们往往需要从数据库查询固定行数的记录,不同的数据库有不同的SQL语句来完成,在Oracle数据库中,可以用以下方法来实现,假设我们要从一个有百万条记录的表中每次取10万条进行处理,可以按如下步骤进行:
1、创建表
Drop TABLE VEHICLE;
Create TABLE VEHICLE (
MAKE VARCHAR2(256) NOT NULL,
&n..