The sqlplus command needs some input. That will come from the lines following the command up to a line that says simply "EOF" without the quotes. That explains sqlplus tkyte/tkyte <<"EOF" except for the quotes around EOF. They tell the shell to not change anything in the lines fed in as input.
The sqlplus command is expected to produce output which will be piped into:
grep '^#' |
sed 's/^.//' > tmp.csh
The grep statement rejects any lines that do not start with a # and the
sed statement removes the first character from every line. The resulting output is sent to tmp.csh.