Вызов хранимой процедуры с помощью Shell Script - PullRequest
0 голосов
/ 16 марта 2012

Вы можете мне помочь? Как подключиться к базе данных Oracle из сценария оболочки с помощью sqlplus? Можете ли вы сделать пример сценария оболочки, который вызывает хранимую процедуру ??

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 марта 2012

Создайте файл xxxx.sql и выполните его следующим образом:

set serveroutput on;
execute STORED_PROCEDURE;
set serveroutput off;
exit

Вам понадобится способ выполнить ваш скрипт, я использую CRON в системах * nix.Мой сценарий выглядит примерно так

#!/bin/sh
# This short shell script calls the XXXX Stored Procedure
# drive.
PATH=$PATH:/opt/oracle/local/bin:/usr/local/bin
export ORACLE_SID=XXXX;   
export ORAENV_ASK=NO;      
export TWO_TASK=XXXXXXXXX;    
. /usr/local/bin/oraenv
sqlplus USERID/PASSWPRD @SQL_Script_to_call_stored_Proceudre.sql
exit 
0 голосов
/ 17 января 2018

Вот пример:

создать файл sh "callProcedureFromBash.sh"

#!/bin/bash      this is a comment

#if you can access sqlplus already, you don't need following 2 lines
export ORACLE_HOME = /efs/dist/oracledb/client/10G/exec
export PATH=$PATH:$ORACLE_HOME/bin

sqlplus "userid/password@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = WWW.YOURHOST.COM) (PORT = 12345) (CONNECT_DATA = (SID = HXZ524))))" <<END

DECLARE
    a int;
BEGIN
    packagename.Procedurename(a);
END;
/
commit;
...