0
我有下面这个shell脚本。如何在日志中显示shell中的选择查询?
#!/usr/bin/ksh
#
FNC_DIR=/test/Create_User
PWD_DIR=/test/users
. ${FNC_DIR}/db.profile
csrpass=`cat ${PWD_DIR}/csradmin.user`
/opt/oracle/product/9.2.0/bin/sqlplus /nolog <<EOF> /test/Log/user_create.log
conn csradmin/${csrpass}@PNDBCSR2
select * from global_name;
echo "select
dbms_metadata.get_ddl('USER', username) || '/' usercreate
from
dba_users where username = 'NSAGUN'";
exit;
EOF
但我在日志中的错误。
SP2-0734:未知的命令开头“回声‘塞莱......’ - 行的其余部分被忽略 0734:未知的命令开头‘dbms_metad ......’ - 行的其余部分被忽略 0042:与未知的命令”,从“ - 行的其余部分被忽略 SP2-0734:未知的命令开头‘DBA_USERS ......’ - 行的其余部分被忽略 SP2-0044:对于已知的命令列表中输入HELP 并离开进入退出
我只想在日志(/test/Log/user_create.log)中显示我的查询结果。
select
dbms_metadata.get_ddl('USER', username) || '/' usercreate
from
dba_users where username = 'NSAGUN'";
我该怎么做?
UPDATE
我使用下面提供的代码,我在日志中有这样的:
SQL>
SQL> select
2 dbms_metadata.get_ddl('USER', username) || '/' usercreate
3 from
4 dba_users where username = 'NSAGUN';
CREATE USER "NSAGUN" IDENTIFIED BY VALUES '1EE5F5XXXXXB194'
DEFAULT T
SQL>
SQL> spool off
我只是想显示创建语句的一部分,它似乎是在日志中不完整的。我期待在日志文件中。
CREATE USER "NSAGUN" IDENTIFIED BY VALUES '1EE5F58CB716B194'
DEFAULT TABLESPACE "PIN01"
TEMPORARY TABLESPACE "PINTEMP"
/
请参阅我上面的修改。 @isedev – 2014-10-09 02:18:13
目前无法真正帮助更多,无法访问Oracle系统。但是,1)输出看起来被截断(尝试设置'set linesize 300'或事件更大的值; 2)我有一个模糊的回忆,“set echo off”仅适用于脚本,而不是从标准输入提供命令7时 - 在这种情况下,使用'sqlplus -s/nolog'。 – isedev 2014-10-09 18:09:32
-s可以做到这一点。谢谢。 :),并能够通过添加显示全部结果:set longchunk 10000.谢谢 – 2014-10-10 02:30:56