When executing a script on SQLPlus, it prints a sequence of numbers instead of output

oracle, sqlplus

Solution

From your edited question... you have to terminate the PL/SQL block with a `/` on a new line to make it end and run, otherwise SQL*Plus will keep prompting for more lines of code (which is the numbers you're seeing). The documentation shows how to run PL/SQL blocks. And `prompt` is a SQL*Plus command so you can't use it inside a PL/SQL block. You also don't have your block syntax right:

SET serveroutput ON;
DECLARE
    mode NUMBER(1) := 1;
BEGIN
    IF mode = 1 THEN
        DBMS_OUTPUT.PUT_LINE('HERE');    
    END IF;
END;
/

prompt fim

Problem

I'm trying to execute a script on SQL PLus, it's simple. ``` SET serveroutput ON; DECLARE mode NUMBER(1) := 1; IF (mode = 1) THEN prompt 'HERE' END IF; prompt 'fim' ``` I call the script from SQLPlus using `sqlplus user/pw@db` and `@myscript.sql` after a successful connection. But the output is strange for me: ``` Conectado a: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> @myscript.sql 9 10 11 ``` And it continues to print this sequence indefinitely. What am I doing wrong?

Original source