什么是;是";您是否在Oracle过程中使用?
我想在Oracle中创建一个过程;然而,我在互联网上看到的任何示例都有一个“IS”语法,我找不到它的任何功能什么是;是";您是否在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];
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;