Column not allowed, when I am writing sql in UNIX

Please advice to rectify below error

#!/bin/ksh
X=$(sqlplus -s user/pass << EOSQL
set serveroutput on;
set heading off feedback off serveroutput on trimout on pagesize 0
INSERT INTO TEST(df)
VALUES('a');
COMMIT;
EXIT;
EOSQL)
echo $X
echo $?
ERROR at line 2: ORA-00984: column not allowed here

Looks like that command substitution is causing problem, try replacing it with backticks:

X=`sqlplus -s user/pass << EOSQL
set serveroutput on;
set heading off feedback off serveroutput on trimout on pagesize 0
INSERT INTO TEST (df)
VALUES ('a');
COMMIT;
EXIT;
EOSQL`