Beispiel #1
0
 /** Check if an exception is raised or EXIT executed, and we should leave the block */
 boolean canContinue(String label) {
   Signal signal = exec.signalPeek();
   if (signal != null && signal.type == Signal.Type.SQLEXCEPTION) {
     return false;
   }
   signal = exec.signalPeek();
   if (signal != null && signal.type == Signal.Type.LEAVE_LOOP) {
     if (signal.value == null
         || signal.value.isEmpty()
         || (label != null && label.equalsIgnoreCase(signal.value))) {
       exec.signalPop();
     }
     return false;
   }
   return true;
 }
Beispiel #2
0
 /** GET DIAGNOSTICS EXCEPTION statement */
 public Integer getDiagnosticsException(HplsqlParser.Get_diag_stmt_exception_itemContext ctx) {
   trace(ctx, "GET DIAGNOSTICS EXCEPTION");
   Signal signal = exec.signalPeek();
   if (signal == null || (signal != null && signal.type != Signal.Type.SQLEXCEPTION)) {
     signal = exec.currentSignal;
   }
   if (signal != null) {
     exec.setVariable(ctx.ident().getText(), signal.getValue());
   }
   return 0;
 }