Jaka jest różnica między "AS" I " IS " w procedurze składowanej Oracle?

Widzę procedury Oracle zapisywane czasami za pomocą słowa kluczowego" AS", a czasami za pomocą słowa kluczowego" IS".

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

Vs.

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

Czy jest jakaś różnica między tymi dwoma?


Edit: najwyraźniej nie ma funkcjonalnej różnicy między tymi dwoma, ale niektórzy ludzie stosują konwencję używania "AS", gdy SP jest częścią pakietu, A "IS", gdy nie jest. Albo odwrotnie. Meh.
Author: Ishmaeel, 2008-10-23

6 answers

Brak Są to synonimy dostarczone, aby Twój kod był bardziej czytelny:

Funkcja f jest ...

Utwórz widok v jako SELECT ...

 55
Author: Tony Andrews,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-23 16:18:46

Jedna drobna różnica...

Są to synonimy dla pakietów i procedur, ale nie dla kursorów:

To działa...
cursor test_cursor
is
select * from emp;

... ale to nie:

cursor test_cursor
as
select * from emp;
 50
Author: Nick Pierpoint,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-27 07:10:24

" IS " I " AS " działają jako synonimy podczas tworzenia procedur i pakietów, ale nie dla kursora, tabeli lub widoku.

 17
Author: Dileep Krishnamurthy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-21 20:00:43

Oto kolejna różnica (w 10g, w każdym razie)

Dany luźny typ obiektu:

CREATE TYPE someRecordType AS OBJECT
(
   SomeCol VARCHAR2(12 BYTE)
);

Możesz utworzyć loose typ tabeli tego typu obiektu z AS lub IS

CREATE OR REPLACE TYPE someTableType
        IS {or AS} TABLE OF someRecordType;

Jeśli jednak tworzysz ten sam typ tabeli w pakiecie, musisz użyć IS:

CREATE OR REPLACE PACKAGE SomePackage IS
    TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;

Użycie AS w pakiecie powoduje następujący błąd:

Błąd (2,30): PLS-00103: napotkał symbol "TABLE" podczas oczekiwania na jeden z następujących elementów: obiekt nieprzezroczysty

 10
Author: StuartLC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-15 11:43:40

Zgodnie z TutorialsPoint

Słowo kluczowe AS jest używane zamiast słowa kluczowego IS do tworzenia samodzielna procedura.

I biorąc pod uwagę poprzednie odpowiedzi,

Chyba

AS is for stand alone (outside of any block, subprogram, package) entities

I

IS jest dla jednostek osadzonych (w bloku, podprogramie lub pakiecie).

.

 2
Author: Dániel Sándor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-19 18:13:01

Słowo kluczowe AS jest używane zamiast słowa kluczowego IS do tworzenia samodzielnej funkcji .

[ a standalone stored function to funkcja ( podprogram zwracający pojedynczą wartość) przechowywana w bazie danych. Uwaga: samodzielna przechowywana funkcja, którą tworzysz za pomocą instrukcji CREATE FUNCTION, różni się od funkcji deklarowanej i definiowanej w bloku lub pakiecie PL/SQL. ]

Więcej wyjaśnień, przeczytaj to ...

 1
Author: Pankaj Shivalkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-21 06:15:22