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