[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

100元求批处理通过指定的SQl语句,连接远程Oracle导出excel

本地安装了 oracle client,在netmanager里也配好了服务名。

类似于 select * from AAA where col1 between to_date('&xxxxxxxx','yyyymmdd') and to_date('&xxxxxxxx','yyyymmdd')

执行前提示用户输入开始时间和结束时间,然后导出

第一次发帖,怎么联系?有没有群?

TOP

  1. @echo off
  2. set OraUser=USERNAME
  3. set OraPass=PASSWORD
  4. set OraIP=192.168.0.123
  5. set OraPort=1521
  6. set OraService=BatHome
  7. set OraSql=test.sql
  8. set /p StartDate=输入开始日期(例如20180701):
  9. set /p EndDate=输入结束日期(例如20180705):
  10. > "%OraSql%" echo spool test.csv
  11. >>"%OraSql%" echo select * from AAA where col1 between to_date('%StartDate%','yyyymmdd') and to_date('%EndDate%','yyyymmdd')
  12. >>"%OraSql%" echo spool off
  13. start sqlplus %OraUser%/%OraPass%@%OraIP%:%OraPort%/%OraService% @%OraSql%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    你好,代码已看到,我抽时间试一下,决不食言

TOP

回复 2# kevinheun


可以加论坛的微信群或者QQ群
http://bbs.bathome.net/thread-3473-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher

请问哪里还需要改啊

    @echo off
set OraUser=sh
set OraPass=xxx
set OraIP=127.0.0.1
set OraPort=1521
set OraService=H
set OraSql=test.sql

set /p StartDate=输入开始日期(例如20180701):
set /p EndDate=输入结束日期(例如20180705):
> "%OraSql%" echo spool test.csv
>>"%OraSql%" echo select * from AAA where col1 between to_date('%StartDate%','yyyymmdd') and to_date('%EndDate%','yyyymmdd')
>>"%OraSql%" echo spool off
start sqlplus %OraUser%/%OraPass%@%OraIP%:%OraPort%/%OraService% @%OraSql%

---------------

select * from profits


1        3        987        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
2        3        1660        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
3        3        1762        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
4        3        1843        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
5        3        1948        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
6        3        2273        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03
7        3        2380        13        999        1998/1/10        783.03        1232.16        1232.16        1.00        783.03

TOP

回复 6# kevinheun


有什么报错信息吗?
把代码生成的 test.sql 和 test.csv 传上来我看一下
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher


    你好,
bat执行后 就一直保持在这个界面:

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 7月 10 11:20:03 2018

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

  3
--------------------------

生成的CSV是空的


-------------------------

生成的test.sql内容如下:
spool test.csv
select * from sales where time_id between to_date('19980110','yyyymmdd') and to_date('19980120','yyyymmdd')
spool off

---------------
bat内容如下:
@echo off
set OraUser=sh
set OraPass=owenowen
set OraIP=127.0.0.1
set OraPort=1521
set OraService=H
set OraSql=test.sql

set /p StartDate=输入开始日期(例如20180701):
set /p EndDate=输入结束日期(例如20180705):
> "%OraSql%" echo spool test.csv
>>"%OraSql%" echo select * from sales where time_id between to_date('%StartDate%','yyyymmdd') and to_date('%EndDate%','yyyymmdd')
>>"%OraSql%" echo spool off
start sqlplus %OraUser%/%OraPass%@%OraIP%:%OraPort%/%OraService% @%OraSql%

TOP

回复 8# kevinheun


    打开一个CMD窗口,手工执行sqlplus连接数据库能成功吗?连接数据库成功之后,手工执行 test.sql 里面的命令能正常生产csv文件吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表