A volte vedo le procedure Oracle scritte con “AS” e talvolta con la parola chiave “IS”.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS** ...
vs.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS** ...
C’è qualche differenza tra i due?
Modifica: Apparentemente, non c’è alcuna differenza funzionale tra i due, ma alcune persone seguono una convenzione per usare “AS” quando l’SP fa parte di un pacchetto e “IS” quando non lo è. O viceversa. Meh.
Nessuna. Sono sinonimi forniti per rendere il tuo codice più leggibile:
FUNZIONE f IS …
CREATE VIEW v COME SELEZIONA …
Una piccola differenza …
Sono sinonimi di pacchetti e procedure, ma non di cursori:
Questo funziona …
cursor test_cursor is select * from emp;
… ma questo non:
cursor test_cursor as select * from emp;
“IS” e “AS” agiscono come sinonimo durante la creazione di procedure e pacchetti ma non per un cursore, una tabella o una vista.
Ecco un’altra differenza (in 10g, in ogni caso)
Dato un tipo di object libero:
CREATE TYPE someRecordType AS OBJECT ( SomeCol VARCHAR2(12 BYTE) );
È ansible creare un tipo di tabella loose
di questo tipo di object con AS
o IS
CREATE OR REPLACE TYPE someTableType IS {or AS} TABLE OF someRecordType;
Tuttavia, se si crea lo stesso tipo di tabella all’interno di un pacchetto, è necessario utilizzare IS
:
CREATE OR REPLACE PACKAGE SomePackage IS TYPE packageTableType IS TABLE OF someRecordType; END SomePackage;
L’utilizzo di AS
nel pacchetto restituisce il seguente errore:
Errore (2,30): PLS-00103: incontrato il simbolo “TABLE” quando si aspettava una delle seguenti condizioni: object opaco
Secondo TutorialsPoint
La parola chiave AS viene utilizzata al posto della parola chiave IS per la creazione di una procedura autonoma.
e considerando le risposte precedenti,
suppongo
AS
è per entity framework indipendenti (al di fuori di qualsiasi blocco, sottoprogramma, pacchetto)
e
IS
è per entity framework incorporate (all’interno di un blocco, sottoprogramma o pacchetto).
.
La parola chiave AS viene utilizzata al posto della parola chiave IS per la creazione di una funzione autonoma .
[Una funzione memorizzata autonoma è una funzione ( un sottoprogramma che restituisce un singolo valore ) che è memorizzata nel database. Nota: una funzione memorizzata autonoma creata con l’istruzione CREATE FUNCTION è diversa da una funzione dichiarata e definita in un blocco o pacchetto PL / SQL. ]
Per ulteriori spiegazioni, leggi questo …