Как создать новую процедуру из скрипта bash - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь создать новую процедуру PL / SQL в Oracle DB.Процедура должна быть создана скриптом BASH.В дальнейшем процедура будет выполняться из того же сценария BASH.

Существуют способы выполнения хранимой процедуры из сценария bash, но ни один не объясняет, как создать хранимую процедуру из сценария bash.

backup_procedure_string="CREATE OR REPLACE 
 PROCEDURE BACKUP_TABLE_PROCEDURE(
                .
                .
 END BACKUP_TABLE_PROCEDURE;"

backup_procedure_execution_string="BACKUP_TABLE_PROCEDURE('${param1}', '${param2}', '${param3}');"

sqlplus -S "${ofca_connect_string}" << EOF >> "${current_directory}/query.log"
        WHENEVER SQLERROR EXIT 1
        SET SERVEROUTPUT ON 
        SET TERMOUT OFF
        $backup_procedure_string
                EXECUTE $backup_procedure_execution_string
        SET SERVEROUTPUT OFF 
        EXIT;
EOF

Процедура "BACKUP_TABLE_PROCEDURE" должна быть создана в базе данных и запущена.Тем не менее, нет ошибок / оракулов, но процедура также не создается.

1 Ответ

3 голосов
/ 14 июня 2019

Работает для меня, вот полный пример кода.

Примечание. Я использовал SQLcl не SQLPlus, а ту же концепцию.

Понятия не имею, что у вас есть.,код, так что, может быть, проблема есть?

Jeffreys-Mini:19.1 thatjeffsmith$ procedure_string="CREATE OR REPLACE PROCEDURE SO_BASH is BEGIN
> null;
> END SO_BASH;
> /
> "
Jeffreys-Mini:19.1 thatjeffsmith$ echo $procedure_string
CREATE OR REPLACE PROCEDURE SO_BASH is BEGIN null; END SO_BASH; /
Jeffreys-Mini:19.1 thatjeffsmith$ sql hr/oracle << EOF >> so.log
> $procedure_string
> EXIT;
> EOF
Jeffreys-Mini:19.1 thatjeffsmith$ more so.log

SQLcl: Release 18.3 Production on Fri Jun 14 10:16:57 2019

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

Last Successful login time: Fri Jun 14 2019 10:16:58 -04:00

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0



Procedure SO_BASH compiled


Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
Jeffreys-Mini:19.1 thatjeffsmith$ 

И просмотр моей схемы ...

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...