从bat文件运行SQL脚本(Oracle,批处理)

4es*_*est 0 sql oracle sqlplus batch-file

我有蝙蝠脚本:

@echo off
cls
:start
sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=X.Y.Z.F)(Port=1521))
                               (CONNECT_DATA=(SID=some_sid))) @test.sql
goto end

:end
pause 0
Run Code Online (Sandbox Code Playgroud)

和我的test.sql

DECLARE
test varchar2(32000);
BEGIN
  test:='value';
  DBMS_OUTPUT.PUT_LINE('string test');
  DBMS_OUTPUT.PUT_LINE(test||' test');
END;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了:

在此处输入图片说明

这是什么意思?

cdu*_*dub 5

您需要输入一个正斜杠(/)来刷新缓冲区。

DECLARE
test varchar2(32000);
BEGIN
  test:='value';
  DBMS_OUTPUT.PUT_LINE('string test');
  DBMS_OUTPUT.PUT_LINE(test||' test');
END;
/   <<<<<<<<<<<<<----- forward slash
Run Code Online (Sandbox Code Playgroud)