我想从KSH脚本运行此命令,该脚本允许运行sql脚本(不使用假脱机)
sqlplus -s $CONNEXION_BDD @${FILE_SQL} >> $OUTPUT_FILE
但是它不起作用,她开始时没有任何结果。
答案 0 :(得分:0)
我刚刚创建了一个称为数字的表,并运行了一些数据:
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
这是另一个使用here-doc的版本:
#!/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.