2010-05-18 8 views
1

Je pensais que l'oracle traite à la fois "est" et "comme" même pour les fonctions et les procédures.J'ai essayé de googler avec "pl/sql est vs as" et a obtenu le lien suivant qui dit les deux sont même.est en tant que pl/sql

IS vs AS keywords for PL/SQL Oracle Function or Procedure Creation

Mais j'ai trouvé http://www.adp-gmbh.ch/ora/plsql/coll/declaration.html#index_by ce qui semble indiquer qu'il ya une différence. Quelqu'un pourrait-il (énumérer/me diriger vers un lien) les autres contextes où l'utilisation de "is/as" fait une différence?

Merci.

Répondre

4

Par exemple (tous ne sont pas PL/SQL):

[CREATE] PROCEDURE x IS|AS ... 
[CREATE] FUNCTION x IS|AS ... 
CREATE PACKAGE [BODY] x IS|AS ... 
CREATE TYPE [BODY] x IS|AS ... 

CURSOR x IS ... 
TYPE x IS ... 
SUBTYPE x IS ... 

CREATE TABLE x AS subquery 
SELECT x AS "y" FROM z AS "w" 
WITH x AS (SELECT ... 

Par conséquent, AS est pas toujours permis où IS est, et IS est pas toujours permis où AS est :)

Juste un de ces bizarreries de la langue, je pense. Généralement, IS est plus commun, je pense, sauf où AS est la seule option (comme dans les exemples SQL ci-dessus). La plupart des exemples dans les documents Oracle semblent utiliser IS, et personnellement, c'est ma préférence car elle correspond mieux sémantiquement, à mon avis.

Références:

Oracle SQL Reference 11gR1

Oracle PL/SQL Reference 11gR1

+0

+1 pour l'explication source de confusion ;-) Merci encore –

+0

!. :-) – sqlgrasshopper5

+0

Ou comme Bill Clinton l'a fait observer un jour, "cela dépend de ce que signifie le mot 'est'": http://www.youtube.com/watch?v=j4XT-l-_3y0 – APC