CVS文件导入SQL

IF   EXISTS  ( SELECT   *   FROM  sysobjects  WHERE  type  =   ' P '   AND  name  =   ' sp_CVS2DB ' )
    
BEGIN
        
PRINT  N ' 删除存储过程 sp_CVS2DB '
        
DROP    Procedure   sp_CVS2DB
    
END

GO

PRINT  N ' 生成存储过程 sp_CVS2DB '
GO

/**/ /******************************************************************************
**        文件: sp_CVS2DB.SQL
**        名称: sp_CVS2DB
**        功能: 读取cvs文件导入到SQL数据中
**        作者: Dong.Wu
**        发布: 2007-09-09
**
*******************************************************************************
**        返回值列表
*******************************************************************************
**        返回值:        涵义:
**         -------        -----------------------------------------------------------
**        0            操作成功    
**
**
*******************************************************************************
**        其它说明
*******************************************************************************
**
**
*******************************************************************************
**        修订日志
*******************************************************************************
**        日期:        作者:        修订备注:
**        ----------    --------    -----------------------------------------------
**
******************************************************************************
*/

CREATE   Procedure  sp_CVS2DB

@Filepath   varchar ( 500 ),     -- --文件路径  
@FileName   varchar ( 100 ),        -- --文件名称
@TableName   varchar ( 128 )        -- --需要导入的表名

AS
    
DECLARE   @strSQL   Varchar ( 1000 )
    
DECLARE   @iError   INT                      -- 出错代码
    
    
BEGIN   TRAN  TranQ
    
    
-- -删除temp表原有记录重新INSERT数据
      SET   @strSQL   =
    
' DELETE FROM  ' + @TableName + '  
     INSERT INTO 
' + @TableName + '
     SELECT * FROM
     OPENROWSET(
'' MSDASQL '' , '' Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR= ' + @Filepath + ' ;Extensions=CSV; '' ,
     
'' SELECT * FROM  ' + @FileName + ''' ) '
    
Exec  ( @strSQL )
    
     
Set   @iError   =   @@ERROR
        
If   @iError   <>   0
        
Begin
            
ROLLBACK   TRAN  TranQ
            
Return   - 1001
        
End
        
COMMIT   TRAN  TranQ
Return   0

GO

GRANT   EXEC   ON  sp_CVS2DB  TO   PUBLIC

GO

CVS导入SQL中000231会变成231处理办法;
在文件目录下创建一个名为   Schema.ini   的文本文件名   
  
-- 写上如下内容( -- 后面的是注释,不要写到文本文件中)   
    
  [a.txt]                                                 
-- 下面的格式是为a.txt文件做说明的   
  ColNameHeader
= False                        -- a.txt文件的第一行不是字段名   
  Format
= CSVDelimited                          -- 字段分隔符是CSV分隔符,即,   
  Col1
= " col1 "    Integer                          -- a.txt中,第1列的列名是col1,类型是int   
  Col2
= " col2 "     char    width    50               -- a.txt中,第2列的列名是col2,类型是int   
  MaxScanRows
= 0                                     --- 扫描整个文件   
  CharacterSet
= ANSI                             --- ANSI   字符集   
指定文件格式
  格式说明                   表格式                               Schema.ini   格式描述     
  Tab   制表符分隔       文件中的字段用制表符分隔           Format
= TabDelimited     
  CSV   分隔                   文件中的字段用逗号来分隔         Format
= CSVDelimited     
  自定义分隔               文件中的字段可以用任何字符       Format
= Delimited(自定义分隔符) 如:(#)  
                                    来分隔,所有的字符都可以   
                                    用来分隔,包括空格,但是   
                                  双引号   (   
"    )   除外     
                                   -    或者没有分隔符    -     Format = Delimited(   )   
  固定宽度                   文件中的字段为固定长度      Char   Width   
10
 
还有,在读取的数据中要是碰到 
19 "  液晶要替换为 19 ""或19''

转载于:https://www.cnblogs.com/DODONG/archive/2007/09/29/910753.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值