最近学习oracle的课本,所以有点小纠结于在定义那些存储过程,函数和程序包中的那些as和is:
在view(视图)中,只能使用as;
在corsor(游标)中,只能使用is;
对于procedure(存储过程), function(函数), package(程序包)来说,as和is没有区别。只是使用习惯而已。
另外,附上创建上面定义的规范语法:
(1)创建视图:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
(2)声明游标:
CURSOR cursor_name IS select_statement
(3)创建存储过程:
CREATE [OR REPLACE] PROCEDURE Procedure_name
[(parameter_name [{IN|IN OUT}] data_type,parameter_name [{IN|OUT|IN OUT}] data_type,...)]
{ IS | AS }
declaration section
BEGIN
executable section
EXCEPTION
Exception handlers
END;
(4)创建函数:
CREATE [OR REPLACE] FUNCTION function_name
[(parameter_name [{IN|IN OUT}] data_type,parameter_name [{IN|OUT|IN OUT}] data_type,...)]
RETURN date_type
{ IS | AS }
declaration section
BEGIN
executable section
EXCEPTION
Exception handlers
END;
(5)创建程序包:
CREATE [OR REPLACE] PACKAGE package_name
AUTHID {CURRENT_USER | DEFINER}
{AS | IS}
[public_variable_declarations...]
[public_type_declartions...]
[public_exception_declarations...]
[public_cursor_declarations...]
[function_declarations...]
[procedure_specifications...]
END [package_name];
注意:Oracle,SQL Server,MySQL这三个软件各自的SQL语句语法不一样,请读者自行斟酌。