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

后端 未结 3 920
[愿得一人]
[愿得一人] 2021-01-20 16:05

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\'

EN         


        
相关标签:
3条回答
  • 2021-01-20 16:36

    You cannot use sqlplus command in plsql.We can use dbms_output instead which will display the output in SQL prompt

    SET serveroutput ON;
    DECLARE
    mode NUMBER(1) := 1;
    BEGIN
    IF (mode = 1) THEN
    dbms_output.put_line('HERE');
    END IF;
    dbms_output.put_line('fim');
    END;
    /
    
    0 讨论(0)
  • 2021-01-20 16:47

    Go to your oracle home Oracle\product\<version>\client_2\sqlplus\admin\glogin.sql and add the following lines to enable printing globally,

    SET ECHO ON;
    SET TERM ON;
    WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
    SET DEFINE OFF;
    
    0 讨论(0)
  • 2021-01-20 16:53

    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
    
    0 讨论(0)
提交回复
热议问题