Вы можете мне помочь? Как подключиться к базе данных Oracle из сценария оболочки с помощью sqlplus? Можете ли вы сделать пример сценария оболочки, который вызывает хранимую процедуру?Вызов хранимой процедуры с помощью Shell Script
спасибо.
Вы можете мне помочь? Как подключиться к базе данных Oracle из сценария оболочки с помощью sqlplus? Можете ли вы сделать пример сценария оболочки, который вызывает хранимую процедуру?Вызов хранимой процедуры с помощью Shell Script
спасибо.
Создайте файл 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
Вот пример:
создать ш файл "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/[email protected](DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = WWW.YOURHOST.COM) (PORT = 12345) (CONNECT_DATA = (SID = HXZ524))))" <<END
DECLARE
a int;
BEGIN
packagename.Procedurename(a);
END;
/
commit;
Вы пропустили '@'. Persaonlly, я также всегда использовал флаг '-s' для уменьшения шума; и особенно если он работает от 'cron' (хотя это, похоже, не является требованием здесь) явно устанавливает enviromnment:' ORACLE_HOME', 'ORACLE_SID' и т. д. –
@Alex Poole - вы на 100% правильны. Я обработал пример всего этого, прежде чем опубликовать его. Больше из паранойи, что однажды я выложу пароль или критическое имя БД на случай аварии. Я очистил его сейчас – ProfessionalAmateur
Это не паранойя, они действительно хотят вас ... * 8-) –