Я вижу процедуры Oracle, иногда написанные с помощью "AS", а иногда с ключевым словом "IS".
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
против.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
Есть ли разница между двумя?
Ничего. Они представляют собой синонимы, чтобы сделать ваш код более читаемым:
ФУНКЦИЯ f IS...
CREATE VIEW v AS SELECT...
Одно незначительное отличие...
Они являются синонимами для пакетов и процедур, но не для курсоров:
Это работает...
cursor test_cursor
is
select * from emp;
... но это не так:
cursor test_cursor
as
select * from emp;
"IS" и "AS" действуют как синоним при создании процедур и пакетов, но не для курсора, таблицы или представления.
Здесь другая разница (в 10g, во всяком случае)
Для типа свободного объекта:
CREATE TYPE someRecordType AS OBJECT
(
SomeCol VARCHAR2(12 BYTE)
);
Вы можете создать тип таблицы loose
для этого типа объекта с помощью AS
или IS
CREATE OR REPLACE TYPE someTableType
IS {or AS} TABLE OF someRecordType;
Однако, если вы создаете тот же тип таблицы внутри пакета, вы должны использовать IS
:
CREATE OR REPLACE PACKAGE SomePackage IS
TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;
Использование AS
в пакете приводит к следующей ошибке:
Ошибка (2,30): PLS-00103: встречается символ "ТАБЛИЦА", ожидая одно из следующего: объект непрозрачный