设为首页 收藏本站
查看: 1768|回复: 0

[经验分享] 每小时生成csv文件,并ftp到远端服务器

[复制链接]

尚未签到

发表于 2016-6-10 13:27:59 | 显示全部楼层 |阅读模式
  
  

CREATE OR REPLACE procedure PULSEINP.dump_csv(
p_separator in varchar2
default ','
)
is
l_conn  UTL_TCP.connection;
l_output        utl_file.file_type;
l_theCursor     integer default dbms_sql.open_cursor;
l_columnValue   varchar2(2000);
l_status        integer;
l_colCnt        number default 0;
l_separator     varchar2(10) default ',';
p_filename   varchar2(50) ;
l_cnt           number default 0;
p_query    varchar2(5000);
begin
p_filename := 'CMN_TDRDAILY'||to_char(sysdate-(1/24), 'HH24')||'.CSV';
l_output := utl_file.fopen( 'UTL_FILE_DIR', p_filename, 'w' );   
p_query :='select REQUEST_TYPE,CALLSTARTTIME,ANI,DNIS,ROUTE1LABEL,ANI,LRN,DIALCODE,ANI FROM CMN_TDRDAILY'||to_char(sysdate-(1/24), 'HH24');
DBMS_OUTPUT.PUT_LINE(p_query);
dbms_sql.parse(  l_theCursor,  p_query, dbms_sql.native );
for i in 1 .. 255 loop
begin
dbms_sql.define_column( l_theCursor, i,
l_columnValue, 2000 );
l_colCnt := i;
exception
when others then
if ( sqlcode = -1007 ) then exit;
else
raise;
end if;
end;
end loop;
DBMS_OUTPUT.PUT_LINE(l_colCnt);
dbms_sql.define_column( l_theCursor, 1, l_columnValue,
2000 );
l_status := dbms_sql.execute(l_theCursor);
utl_file.put( l_output, 'CALLTYPE,STARTTIME,ORIGINATINGNUMBER,TERMINATINGNUMBER,TERMINATINGTRUNKNUMBER,col25,col26,col27,col28,col50,CALLCONNECTTIME,CALLANSWERTIME,CALLDISCONNECTTIME');
utl_file.new_line( l_output );
loop
exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );
l_separator := '';
for i in 1 .. l_colCnt loop
dbms_sql.column_value( l_theCursor, i,
l_columnValue );
utl_file.put( l_output, l_separator ||
l_columnValue );
l_separator := p_separator;
end loop;
utl_file.put( l_output, ',,'||TO_CHAR(SYSDATE-5/(24*60), 'dd-mm-yy hh24:mi:ss')||','||TO_CHAR(SYSDATE-1/(24*60), 'dd-mm-yy hh24:mi:ss'));
utl_file.new_line( l_output );
l_cnt := l_cnt+1;
end loop;
dbms_sql.close_cursor(l_theCursor);
utl_file.fclose( l_output );
l_conn := ftp.login('10.0.1.29', '21', 'oracle', 'oracle');
ftp.ascii(p_conn => l_conn);
ftp.put(p_conn      => l_conn,
p_from_dir  => 'MY_DOCS',
p_from_file => p_filename,
p_to_file   => '/home/oracle/'||p_filename);
ftp.logout(l_conn);
utl_tcp.close_all_connections;
end dump_csv;
/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-228714-1-1.html 上篇帖子: 用JAVA FTP两台服务器实时传输数据,发现他是鸡肋。 下篇帖子: Java语言实现简单FTP软件------>上传下载队列窗口的实现(七)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表