什么是;是";您是否在Oracle过程中使用?

什么是;是";您是否在Oracle过程中使用?,oracle,stored-procedures,syntax,Oracle,Stored Procedures,Syntax,我想在Oracle中创建一个过程;然而,我在互联网上看到的任何示例都有一个“IS”语法,我找不到它的任何功能 CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] IS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [procedure_name];

我想在Oracle中创建一个过程;然而,我在互联网上看到的任何示例都有一个“IS”语法,我找不到它的任何功能

CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]

IS
    [declaration_section]

BEGIN
    executable_section

[EXCEPTION
    exception_section]

END [procedure_name];

有人知道“IS”做什么吗?

IS
是语法的一部分:(可以替换为
AS

它将程序定义与其内容分开


下面的可选声明部分允许您声明局部变量。

,在此上下文中,它告诉我们(和编译器)下面是过程的主体。它的缺失告诉我们(和编译器)它只是一个声明(例如,包体中的转发声明):


在模式级过程的情况下,我们可以(理论上)使用一种语法,使得
是可选的,因为不需要前向声明;但是(谢天谢地)PL/SQL的设计者保持了语法与包内语法的一致性,因此仍然需要
IS

IS
只是属于语法,提高了可读性。你也可以问:“在groupby中,GROUP必须始终后跟。BY的功能是什么?”你是在问[declaration_section]中的内容吗?@ThorstenKettner:“BY”本身并不独立,“groupby”有一个定义和功能。另一方面,“是”总是单独出现并且功能模糊。@WW:不,我知道在[声明\u部分]中发生了什么,我只是不知道“是”的用法。稍微相关:
create or replace package body mypkg is

  -- this is just a forward declaration for the procedure
  procedure myproc (id in number);

  -- this is the full definition of the procedure
  procedure myproc (id in number)
  IS
    ..body of myproc..;

end mypkg;