请大神帮忙看下 是不是脚本有问题我想调用orcle语句把清单导到txt
#!/bin/sh
sqlplus -s rpt/123qweASD@gxzydb1<<eof
today='date+%Y%M%D'
spool exp_scn_hours%{today}.txt
set trimspool on
set linesize 8000
set pagesize 50000
set heading off
set term off
set feedback off
set sqlblankline off
select dat||'$'||
indicator_hours||'$'||
scn||'%'||
int_scn from tb_indicator_hours t order by t.dat desc;
spool off
exit
eof
linux创建的调用oracle的shell
答案:3 悬赏:0
解决时间 2021-11-25 12:25
- 提问者网友:清茶柒夏
- 2021-11-24 23:34
最佳答案
- 二级知识专家网友:颜值超标
- 2021-11-25 00:07
sqlplus -s username/password@database @1.sql > 1.txt
shell设置date
today=`date "+%Y%m%d"`
sqlplus -s username/password@database @1.sql > $today.txt
其实,在sqlplus中的set column 可以设置 时间
set sysdate as today 类似这样,我没有环境,具体语法忘记了。
shell设置date
today=`date "+%Y%m%d"`
sqlplus -s username/password@database @1.sql > $today.txt
其实,在sqlplus中的set column 可以设置 时间
set sysdate as today 类似这样,我没有环境,具体语法忘记了。
全部回答
- 1楼网友:零负荷的放任
- 2021-11-25 01:24
本来写了不少了,嘛的,baidu又让我死机了,烦死了。
那就少说一点,见谅啊。
(1)today='date+%Y%M%D'要在sqlplus的上面,这个是linux命令,数据库不认识。不要用单引号,而应该用反引号。
(2)各个set设定在spool的外面,而且感觉少了一个set echo off;而且各个set的后面也没有分号结束。(我忘了要不要写分号了,不过写习惯了)。
(3)我没见过%{today}这样调参数的,我一般用美圆符号。
(4)美圆符号和百分号都属于特殊符号(至少在linux中是),如果不是必要不要在语句中假如类似符号,这里也有可能是语句中该符号导致的,个人建议,可以先就输出语句,不输出内容,看一下,看看语句是不是你要的语句。
现在能看到的暂时这么多,其他的只能你自己慢慢试验了。
- 2楼网友:木子香沫兮
- 2021-11-25 00:30
被锁定的话,你可以是做不了的。等待也是没用的啊,只要被锁了,永远你也做不了。除非解锁了。应该先去检查为何被锁吧。 调用存储过程,返回结果可以有,得看你的存储过程怎么写了,可以在存储过程里增加返回值的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯