标题: 100元求批处理通过指定的SQl语句,连接远程Oracle导出excel [打印本页]
作者: kevinheun 时间: 2018-7-5 00:21 标题: 100元求批处理通过指定的SQl语句,连接远程Oracle导出excel
本地安装了 oracle client,在netmanager里也配好了服务名。
类似于 select * from AAA where col1 between to_date('&xxxxxxxx','yyyymmdd') and to_date('&xxxxxxxx','yyyymmdd')
执行前提示用户输入开始时间和结束时间,然后导出
作者: kevinheun 时间: 2018-7-5 00:22
第一次发帖,怎么联系?有没有群?
作者: Batcher 时间: 2018-7-5 09:20
- @echo off
- set OraUser=USERNAME
- set OraPass=PASSWORD
- set OraIP=192.168.0.123
- set OraPort=1521
- set OraService=BatHome
- 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%
复制代码
作者: kevinheun 时间: 2018-7-5 11:09
回复 3# Batcher
你好,代码已看到,我抽时间试一下,决不食言
作者: Batcher 时间: 2018-7-5 11:33
回复 2# kevinheun
可以加论坛的微信群或者QQ群
http://bbs.bathome.net/thread-3473-1-1.html
作者: kevinheun 时间: 2018-7-6 23:23
回复 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
作者: Batcher 时间: 2018-7-6 23:52
回复 6# kevinheun
有什么报错信息吗?
把代码生成的 test.sql 和 test.csv 传上来我看一下
作者: kevinheun 时间: 2018-7-10 11:23
回复 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%
作者: Batcher 时间: 2018-7-19 20:21
回复 8# kevinheun
打开一个CMD窗口,手工执行sqlplus连接数据库能成功吗?连接数据库成功之后,手工执行 test.sql 里面的命令能正常生产csv文件吗?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |