В чем разница между "AS" и "IS" в хранимой процедуре Oracle?
Я вижу процедуры в Oracle иногда пишется с "А", а иногда "это" ключевое слово.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
и
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
есть ли разница между двумя?
Edit: по-видимому, между ними нет функциональной разницы, но некоторые люди следуют соглашению использовать "как", когда SP является частью пакета, и" есть", когда это не так. Или наоборот. Meh.
6 ответов
нет whatsover. Они являются синонимами, поставляемыми, чтобы сделать ваш код более читаемым:
функция f есть ...
создать представление v как 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: встреченный символ "Таблица" при ожидании одного из следующих: object opaque
по данным TutorialsPoint
ключевое слово AS используется вместо ключевого слова IS для создания отдельная процедура.
и учитывая предыдущие ответы,
Я думаю
AS
для автономных (вне любого блока, подпрограммы, пакета) объектов
и
IS
для встроенных (в блоке, подпрограмме или пакете) сущностей.
.
на AS ключевое слово используется вместо IS ключевое слово для создания отдельной функции.
[ A автономной сохраненная функция является функцией (подпрограмма, которая возвращает одно значение), которая хранится в базе данных. Примечание: автономное хранимые функции, которые можно создать с помощью инструкции create функция разные из функции, которую вы объявляете и определяете в блоке PL/SQL или пакет. ]
для более подробного объяснения, читать это...