В чем разница между «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: Apparently, there is no functional difference between the two, but some people follow a convention to use "AS" when the SP is part of a package and "IS" when it is not. Or the other way 'round. Meh.

Разве второй не всегда просто указывает на другую процедуру, которая фактически реализует эту функциональность?

Joel Coehoorn 23.10.2008 20:12

В моем тесте оба работали с одним и тем же телом. Незнаю о том, чтобы указать на другую процедуру.

Ishmaeel 23.10.2008 20:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
99
2
63 770
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Никаких других. Это синонимы, которые делают ваш код более читабельным:

ФУНКЦИЯ f ЕСТЬ ...

СОЗДАТЬ ПРОСМОТР v КАК ВЫБРАТЬ ...

Одно небольшое отличие ...

Это синонимы пакетов и процедур, но не курсоров:

Это работает...

cursor test_cursor
is
select * from emp;

... но это не так:

cursor test_cursor
as
select * from emp;

Ответ Дилипа Кришнамурти завершает это

Imad 23.06.2015 07:50

Вот еще одно отличие (во всяком случае, в 10гр)

Учитывая свободный тип объекта:

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 в пакете приводит к следующей ошибке:

Error(2,30): PLS-00103: Encountered the symbol "TABLE" when expecting one of the following: object opaque

«IS» и «AS» действуют как синонимы при создании процедур и пакетов, но не для курсора, таблицы или представления.

Согласно TutorialsPoint

The AS keyword is used instead of the IS keyword for creating a standalone procedure.

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

я предполагаю

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

и

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

.

Ключевое слово КАК используется вместо ключевого слова ЯВЛЯЕТСЯ для создания автономная функция.

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

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

Другие вопросы по теме