【发布时间】:2014-10-08 10:43:14
【问题描述】:
我在下面有这个 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:以“echo”sele...”开头的未知命令 - 忽略行的其余部分。 0734:以“dbms_metad...”开头的未知命令 - 忽略行的其余部分。 0042:未知命令“来自” - 忽略行的其余部分。 SP2-0734:以“dba_users ...”开头的未知命令 - 忽略行的其余部分。 SP2-0044:对于已知命令的列表,请输入 HELP 并离开进入EXIT。
我只想在日志 (/test/Log/user_create.log) 中显示我的查询结果。
select
dbms_metadata.get_ddl('USER', username) || '/' usercreate
from
dba_users where username = 'NSAGUN'";
我该怎么做?
更新
我使用下面提供的代码,我在日志中得到了这个:
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"
/
【问题讨论】: