我有一个(test.batch)批处理文件,该文件调用(gett.sql)sql文件并执行它。
问题是如何在屏幕上向用户显示sql文件的输出。
test.batch文件:
@echo off
set mypath=%cd%
@ECHO Counter...
set user_name=hr
set password=hr
set net_service_name=ORCL
echo exit | sqlplus -s %user_name%/%password%@%net_service_name% @%mypath%\gett.sql
pause
gett.sql文件:
SET ECHO ON
DECLARE
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Message# '||i);
END LOOP;
END;
PAUSE
答案 0 :(得分:3)
您所做的一切都正确(确定,几乎一切):
M:\a1_maknuto>@test
Counter...
Message# 1
Message# 2
Message# 3
Message# 4
Message# 5
PL/SQL procedure successfully completed.
Press any key to continue . . .
M:\a1_maknuto>
您错过的是一个斜杠,该斜杠终止gett.sql
脚本中的PL / SQL块;另外,不要忘记启用SET SERVEROUTPUT ON
的输出:
SET ECHO ON
SET SERVEROUTPUT ON --> this
DECLARE
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Message# '||i);
END LOOP;
END;
/ --> this
PAUSE