您的位置:程序门 -> db2 -> 数据库开发



db2纯sql存储过程中怎样实现数据从文件导入数据表


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


db2纯sql存储过程中怎样实现数据从文件导入数据表
发表于:2007-11-08 22:14:52 楼主
我写了一个存储过程,但是报错。请帮忙看看。
create   procedure   abc.import_data(in   file_path   varchar(100))
begin
    import   from   file_path   of   del
    insert   into   abc.data_table;
end;
发表于:2007-11-09 10:10:421楼 得分:0
当然会错   import不是sql命令。
发表于:2007-11-09 11:04:382楼 得分:0
在存储过程中不可以用load/import的  
但你可以使用系统存储过程db2load,参数比较多,你可以自己查一下:  


如果是db2   9   ,可以使用

sysproc.admin_cmd('import       from       ......')
发表于:2007-11-09 11:11:533楼 得分:0
可以参考这篇文章
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0505stolze/
发表于:2007-11-09 15:56:494楼 得分:0
你可以在过程中使用系统存储过程:sysproc.db2load      
    过程中定义变量先:      
    declare       sqlstate       char(5);      
                            declare       sqlcode       integer;      
                            declare       sqlmessage       varchar(2048);      
                                    declare       rows_read       bigint;      
                                    declare       rows_skipped       bigint;      
                                    declare       rows_loaded       bigint;      
                                    declare       rows_rejected       bigint;      
                                    declare       rows_deleted       bigint;      
                                    declare       rows_committed       bigint;      
                                    declare       rows_part_read       bigint;      
                                    declare       rows_part_rejected       bigint;      
                                    declare       rows_part_partitioned       bigint;      
                                    declare       mpp_load_summary       varchar(32672);      
                                    declare       cursor_statement       varchar(32672);      
                                    declare           load_command       varchar(32672);      
       
    set       cursor_statement='       declare       mycursor       cursor       for       select       *       from       table1)';      
    set       load_command='load       from       mycursor       of       cursor       insert       into       table2'       ;      
       
    call       sysproc.db2load(8,--db2版本      
    cursor_statement,      
    load_command,      
    sqlcode,      
    sqlmessage       ,      
    rows_read       ,      
    rows_skipped       ,      
    rows_loaded       ,      
    rows_rejected       ,      
    rows_deleted       ,      
    rows_committed       ,      
    rows_part_read       ,      
    rows_part_rejected       ,      
    rows_part_partitioned       ,      
    mpp_load_summary      
    );      
发表于:2007-11-09 19:26:345楼 得分:0
谢谢各位的帮助!


快速检索

最新资讯
热门点击