使用sqlplus与数据库连接的shell脚本包含以下行:
sqlplus username/password@DBNAME<<EOF>tmp.
(here there is a select sql query)
我知道<<EOF
表示命令的开始。我在>tmp
部分有以下疑问。
1)是否表示存储到文件中?
2)如果是,它会将SQL查询的结果单独放入tmp文件或查询和结果中。
请你清楚我这个吗?
答案 0 :(得分:2)
<<EOF
被称为&#34; heredocs&#34;。这意味着从脚本的下一行开始,直到显示&#34; EOF&#34;的行将被shell读入,并在标准输入上提供给命令。
在您的情况下,sqlplus
命令正在向SQL查询提供,就像它来自标准输入一样。然后,sqlplus
的输出将保存到名为tmp
的文件中。
输入和输出是分开的。但是,sqlplus
作为命令有习惯重复输入到输出,除非SET ECHO OFF
另有说明。