web-dev-qa-db-fra.com

Quelle est la différence entre "AS" et "IS" dans une procédure stockée Oracle?

Je vois des procédures Oracle parfois écrites avec "AS", et parfois avec "IS".

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

vs.

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

Y a-t-il une différence entre les deux?


87
Ishmaeel

Rien du tout. Ce sont des synonymes fournis pour rendre votre code plus lisible:

FONCTION f IS ...

CRÉER UNE VUE v COMME SÉLECTIONNER ...

60
Tony Andrews

Une petite différence ...

Ce sont des synonymes de packages et de procédures, mais pas de curseurs:

Cela marche...

cursor test_cursor
is
select * from emp;

... mais cela ne veut pas:

cursor test_cursor
as
select * from emp;
52
Nick Pierpoint

"IS" et "AS" agissent comme des synonymes lors de la création de procédures et de packages, mais pas pour un curseur, une table ou une vue.

19

Voici une autre différence (en 10g, en tout cas)

Étant donné un type d'objet lâche:

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

Vous pouvez créer un loose type de table de ce type d'objet avec AS ou IS

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

Cependant, si vous créez ce même type de table dans un package, vous devez utiliser IS:

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

L'utilisation de AS dans le package génère l'erreur suivante:

Erreur (2,30): PLS-00103: A rencontré le symbole "TABLE" lors de l'attente de l'un des éléments suivants: objet opaque

11
StuartLC

Le mot clé [~ # ~] as [~ # ~] est utilisé à la place du [~ # ~] est le mot clé [~ # ~] pour créer une fonction autonome .

[Une fonction stockée autonome est une fonction ( un sous-programme qui renvoie une valeur unique ) qui est stocké dans la base de données. Remarque: Une fonction stockée autonome que vous créez avec l'instruction CREATE FUNCTION est différente d'une fonction que vous déclarez et définissez dans un bloc ou un package PL/SQL . ]

Pour plus d'explications, lire ceci ...

2
Pankaj Shivalkar

Selon TutorialsPoint

Le mot clé AS est utilisé à la place du mot clé IS pour créer une procédure autonome.

et compte tenu des réponses précédentes,

J'imagine

AS est pour les entités autonomes (en dehors de tout bloc, sous-programme, package)

et

IS est destiné aux entités incorporées (dans un bloc, un sous-programme ou un package).

.

2
Dániel Sándor