Oracle 11Gset SERVEROUTPUT onbegin
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');end;这个执行没有问题但是:
set SERVEROUTPUT on
<<print_hello>>
begin
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');end;出现错误:
在行 2 上开始执行命令时出错:
<<print_hello>>
begin
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');
DBMS_OUTPUT.PUT_LINE('Hello,world!');end;
错误报告:
ORA-00600: 内部错误代码, 参数: [12259], [], [], [], [], [], [], [], [], [], [], []
00600. 00000 -  "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
*Cause:    This is the generic internal error number for Oracle program
           exceptions. This indicates that a process has encountered an
           exceptional condition.
*Action:   Report as a bug - the first argument is the internal error number

解决方案 »

  1.   

    <<print_hello>>
    这个不是ORACLE的语法,是代码说明吧,ORACLE的注释用的是--
      

  2.   

    标号应该在begin和end之间吧。难道goto还能goto到begin之前或者end之后?
      

  3.   

    晕啊,我那本书上写的是这个叫匿名块
    set SERVEROUTPUT onbegin
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');end;这个叫命名块
    set SERVEROUTPUT on
    <<print_hello>>
    begin
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');end;难道是买到山寨书了?小弟对ORACLE不熟悉,请老大们指教PL/SQL有没有命名块这个东西?
      

  4.   

    <<print_hello>>--这里有问题,这是个label标志,跟goto匹配的
    --要么去掉
    begin
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    end;
    --要么这样
    declare
    begin
    goto print_hello;
    <<print_hello>>
    begin
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    DBMS_OUTPUT.PUT_LINE('Hello,world!');
    end;
    end;
      

  5.   

    没听过命名块。。
    你google下看有没