Выполнить процедуру SQL в базе данных Oracle с командным файлом - PullRequest
0 голосов
/ 13 июня 2018

Я создал файл .bat для выполнения процедуры со следующими строками:

echo off
sqlplus username/password@databasename
set heading off
set feedback off
BEGIN
AML.DO_ACCOUNT_AML() ;
COMMIT

END;
/
exit;
!

.Он мог подключиться только к базе данных, но не смог выполнить запрос.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Два шага (как вам уже сказали): пакетный сценарий + сценарий SQL.

пакетный сценарий

sqlplus scott/tiger@orcl @run_proc.sql

сценарий SQL (run_proc.sql)

set serveroutput on
begin
  p_test;
end;
/
exit

Хранимая процедура

create or replace procedure p_test is
begin
  dbms_output.put_line('Hello!');
end;
/

Запуск runme.bat в командной строке ОС приводит к следующему:

M:\>runme

M:\>sqlplus scott/tiger@orcl @run_proc.sql

SQL*Plus: Release 11.2.0.1.0 Production on Sri Lip 13 11:28:00 2018

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

hello

PL/SQL procedure successfully completed.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

M:\>

Видимо, это работает .Теперь вы можете поиграть с разными настройками (эхо, обратная связь, что угодно), но - в общем, все.

0 голосов
/ 13 июня 2018

Я бы разделил команды SQL / SQL * Plus на отдельный скрипт:

myscript.sql:

set heading off
set feedback off
BEGIN
AML.DO_ACCOUNT_AML() ;
COMMIT

END;
/

И оставил этот пакетный скрипт для обработки только потока управления:

myscript.bat:

echo off
sqlplus username/password@databasename @myscript.sql
!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...