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.
6 answers
Brak Są to synonimy dostarczone, aby Twój kod był bardziej czytelny:
Funkcja f jest ...
Utwórz widok v jako SELECT ...
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;
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.
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
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).
.
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 ...
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