Oracle PLS-00103在BEGIN中使用注释语句时出错。。。PL/SQL中的结束块

Oracle PLS-00103在BEGIN中使用注释语句时出错。。。PL/SQL中的结束块,oracle,plsql,oracle11g,pls-00103,Oracle,Plsql,Oracle11g,Pls 00103,出于好奇,我试图在PL/SQL块中使用COMMENT语句。我在Oracle 11g数据库上使用Oracle APEX 18.2,在SQL Workshop中,我能够自行执行该命令,但如果我将其包装在BEGIN中。。。结束块,然后我得到一条错误消息,如: ORA-06550: line 4, column 18: PLS-00103: Encountered the symbol "ON" when expecting one of the following: : = . ( @ % ; 工作

出于好奇,我试图在PL/SQL块中使用COMMENT语句。我在Oracle 11g数据库上使用Oracle APEX 18.2,在SQL Workshop中,我能够自行执行该命令,但如果我将其包装在BEGIN中。。。结束块,然后我得到一条错误消息,如:

ORA-06550: line 4, column 18: PLS-00103: Encountered the symbol "ON" when expecting one of the following: : = . ( @ % ;
工作的命令示例:

COMMENT ON COLUMN employees.job_id IS 'comment';
导致错误消息的命令示例:

BEGIN  
    COMMENT ON COLUMN employees.job_id IS 'comment';  
END;
我假设COMMENT不是存储过程中允许的语句,但我还没有找到证据来支持它。我说的对吗?如果是的话,是否在任何地方都有记录

感谢@GMB提供的书面示例回答。

考虑:

create table employees(job_id int);

begin  
    comment on column employees.job_id is 'comment'
end;
/
1行受影响 dbfiddle

考虑:

create table employees(job_id int);

begin  
    comment on column employees.job_id is 'comment'
end;
/
1行受影响
dbfiddle

您是否尝试过对列employees.job\u id为“COMMENT”的员工使用
executeimmediate'注释
。这是DDL,必须使用PL/SQL块中的
executeimmediate
执行。非常感谢@Tejash-我没有这样做,也不知道!基本上,COMMENT命令是一个DDL语句,不能直接在PL/SQL中执行。PL/SQL语言没有“COMMENT”关键字,因此出现语法错误。“banana”也会出现同样的错误。您是否尝试过在employees列上使用
execute immediate”注释。作业id为“COMMENT”
。这是DDL,必须使用PL/SQL块中的
executeimmediate
执行。非常感谢@Tejash-我没有这样做,也不知道!基本上,COMMENT命令是一个DDL语句,不能直接在PL/SQL中执行。PL/SQL语言没有“COMMENT”关键字,因此出现语法错误。“香蕉”也会出现同样的错误。
begin  
    execute immediate 'comment on column employees.job_id is ''comment''' ;
end;
/
1 rows affected