Я только что создал таблицу под названием числа и запустил некоторые данные:
create table numbers (num varchar(10));
insert into numbers values ('one');
insert into numbers values ('two');
insert into numbers values ('three');
insert into numbers values ('four');
commit;
И выбрал данные, используя sqlplus:
$ cat get_num.sql
select * from numbers;
quit;
$ sqlplus -s $CONN_STR @get_num.sql > get_num.out
$ cat get_num.out
NUM
----------
one
two
three
four
Вот еще одна версия, которая использует здесь документ:
#!/bin/ksh
sqlplus -s $CONN_STR <<EOF > get_num.out
select * from numbers;
quit;
EOF
Если вы хотите использовать PL / SQL:
#!/bin/ksh
sqlplus -s $CONN_STR <<EOF > tryCur.out
set serveroutput on size 30000;
DECLARE
thisNum varchar2(10);
CURSOR num_cur is
SELECT num FROM numbers;
BEGIN
OPEN num_cur;
LOOP
FETCH num_cur into thisNum;
EXIT WHEN num_cur%notfound;
dbms_output.put_line('ThisNum is:'|| thisNum);
END LOOP;
CLOSE num_cur;
END;
/
EOF
Эта версия создала выходной файл:
ThisNum is:one
ThisNum is:two
ThisNum is:three
ThisNum is:four
PL/SQL procedure successfully completed.