sql >> Database >  >> RDS >> Oracle

Zorg ervoor dat de puppet-build mislukt wanneer het ingesloten SQL-script niet wordt uitgevoerd

Ik geloof dat marionet het succes van het script detecteert op basis van de retourcode van het aangeroepen programma. Standaard retourneert sqlplus 0 wanneer u het sluit, ongeacht wat er tijdens de sessie is uitgevoerd.

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 17 08:47:08 2014

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


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

SQL> select asdjkhasd from sadbjaksd;
select asdjkhasd from sadbjaksd
                      *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[[email protected] ~]$ echo $?
0

Als u wilt dat sqlplus afsluit met een foutstatus, kunt u de opdracht when gebruiken, bijvoorbeeld

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 17 08:48:17 2014

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


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

SQL> whenever sqlerror exit failure;
SQL> select bogus from nowhere;
select bogus from nowhere
                  *
ERROR at line 1:
ORA-00942: table or view does not exist


Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[[email protected] ~]$ echo $?
1

Let in het laatste geval op de andere retourcode. Dit zou voldoende moeten zijn om de puppet te laten weten dat de opdracht is mislukt.




  1. Datum ophalen uit een resultSet

  2. PHP PDOException:SQLSTATE [HY000] [2019] Kan tekenset utf8mb4 niet initialiseren

  3. HTML2PDF-ondersteuning voor de Japanse taal (utf8) werkt niet

  4. Controleren of een bepaalde datum tussen een reeks datums past