1

我在我的 cshell 脚本中执行此操作,sqlplus $ORA_UID/$ORA_PSWD @${SQL}test.sql ${DATA}${ext1}试图从 test.sql 脚本中获取输出。在我的 sql 脚本中,我将输出转储到spool &1.. 但是当我运行我的脚本时,我的文件是空白的,我没有从数据库中得到任何东西。有人能说出这有什么问题吗

4

1 回答 1

1

通常,将您的用户名和密码显示在进程列表中并不是一个好主意,就像现在发生的那样。大多数情况下,sql 脚本没有产生预期的输出是因为缺少 SQL 标记的结尾。默认 SQL 的结尾是 ';' 读取 SQL 结束标记实际上会启动 SQL 语句。首先尝试带有反馈的脚本并检查假脱机文件中的错误消息。假脱机文件位置是否正常?

sqlplus /nolog <<eof
connect $ORA_UID/$ORA_PSWD
@${SQL}test.sql ${DATA}${ext1}
eof

这种结构防止在进程列表上显示凭据。

在 sqlscript 中可能是

select * from dual;

或者

select * from dual
/

但是每个 SQL 语句都必须有一个 SQL 结束标记。

于 2011-03-24T20:27:09.737 回答