最近,经常碰到使用sqlplus在后台运行sql脚本的情况,于是乎就遭遇了 Error 45 initializing SQL*Plus错误.
我运行的PL/SQL 文件 test.sql 如下
set serveroutput on; set timing on; DECLARE BEGIN dbms_output.put_line(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')); END;
该SQL文件所运行的Home folder所在磁盘的文件系统为 ext4. 关于文件类型,可以通过查看 /etc/fstab 文件确认.
后台运行sql 文件的命令如下
nohup sqlplus iqm_blk/[email protected] @test.sql > test.out 2>&1 &
我这里总结一下错误的主要原因
- test.sql 文件END: 后不能有空行
- test.sql文件END:后,需要加入 /
- 需要在/后加入exit; 命令. 当加入了exit;后,空行是没问题的.
能正确执行的脚本如下
set serveroutput on; set timing on; DECLARE BEGIN dbms_output.put_line(TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')); END; / exit;
希望对大家有帮助。
时间: 2024-11-07 09:53:29