/** 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; }
/** VALUES statement */ public Integer values(HplsqlParser.Values_into_stmtContext ctx) { trace(ctx, "VALUES statement"); int cnt = ctx.ident().size(); // Number of variables and assignment expressions int ecnt = ctx.expr().size(); for (int i = 0; i < cnt; i++) { String name = ctx.ident(i).getText(); if (i < ecnt) { visit(ctx.expr(i)); Var var = exec.setVariable(name); if (trace) { trace(ctx, "SET " + name + " = " + var.toString()); } } } return 0; }
/** GET DIAGNOSTICS ROW_COUNT statement */ public Integer getDiagnosticsRowCount(HplsqlParser.Get_diag_stmt_rowcount_itemContext ctx) { trace(ctx, "GET DIAGNOSTICS ROW_COUNT"); exec.setVariable(ctx.ident().getText(), exec.getRowCount()); return 0; }