В чем разница между "AS" и "IS" в хранимой процедуре Oracle?


Я вижу процедуры Oracle, иногда написанные с помощью ключевого слова" AS", а иногда с помощью ключевого слова" IS".

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...

и

CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...

есть ли разница между двумя?


Edit: по-видимому, между ними нет функциональной разницы, но некоторые люди следуют соглашению использовать "как", когда SP является частью пакета, и "есть", когда это не так. Или вокруг другого пути'. Мех.
6 81

6 ответов:

нет whatsover. Они являются синонимами, поставляемыми, чтобы сделать ваш код более читаемым:

функция f есть ...

создать вид v Как выбрать ...

небольшое различие...

Они являются синонимами для пакетов и процедур, но не для курсоров:

это работает...

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: обнаружен символ "Таблица" при ожидании одного из следующих действий: объект непрозрачный

по данным TutorialsPoint

ключевое слово AS используется вместо ключевого слова IS для создания автономная процедура.

и учитывая предыдущие ответы,

Я думаю

AS для автономных (вне любого блока, подпрограммы, пакета) сущностей

и

IS для встроенных (в пределах блока, подпрограммы или пакета) сущностей.

.

The как ключевое слово используется вместо и ключевое слово для создания отдельной функции.

[ A автономной сохраненная функция-это функция (подпрограмма, которая возвращает одно значение), которая хранится в базе данных. Примечание: автономная хранимая функция, которую вы создаете с помощью инструкции CREATE FUNCTION, является разные из функции, которую вы объявляете и определяете в блоке PL / SQL или пакет. ]

для более подробного объяснения, читать это...