Oracleプロシージャは、「AS」で記述されていることもあれば、「IS」キーワードで記述されていることもあります。
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **AS**
...
vs.
CREATE OR REPLACE Procedure TESTUSER.KILLINSTANCE (INSTANCEID integer) **IS**
...
2つの間に違いはありますか?
何もありません。これらは、コードを読みやすくするために提供される同義語です。
関数f IS ...
CREATE VIEW v AS SELECT ...
1つの小さな違い...
これらはパッケージとプロシージャの同義語ですが、カーソルの同義語ではありません。
これは動作します...
cursor test_cursor
is
select * from emp;
...しかし、これはしません:
cursor test_cursor
as
select * from emp;
「IS」と「AS」は、プロシージャとパッケージを作成する際の同義語として機能しますが、カーソル、テーブル、またはビュー用ではありません。
ここに別の違いがあります(とにかく10gで)
ゆるいオブジェクトタイプがある場合:
CREATE TYPE someRecordType AS OBJECT
(
SomeCol VARCHAR2(12 BYTE)
);
loose
またはAS
のいずれかを使用して、このオブジェクトタイプのIS
テーブルタイプを作成できます。
CREATE OR REPLACE TYPE someTableType
IS {or AS} TABLE OF someRecordType;
ただし、パッケージ内にこの同じテーブルタイプを作成する場合は、IS
を使用する必要があります。
CREATE OR REPLACE PACKAGE SomePackage IS
TYPE packageTableType IS TABLE OF someRecordType;
END SomePackage;
パッケージでAS
を使用すると、次のエラーが発生します。
エラー(2,30):PLS-00103:次のいずれかを予期しているときに、シンボル "TABLE"が見つかりました:object opaque
[〜#〜] as [〜#〜]キーワードは、[〜#〜] is [〜#〜]スタンドアロン関数を作成するためのキーワード。
[standaloneストアド関数は、データベースに格納される関数(単一の値を返すサブプログラム)です。注:CREATE FUNCTIONステートメントを使用して作成するスタンドアロンのストアド関数は、PL/SQLブロックまたはパッケージで宣言および定義する関数とはdifferentです。 ]
詳細については、 これを読む ...
TutorialsPoint による
スタンドアロンプロシージャを作成するには、ISキーワードの代わりにASキーワードを使用します。
以前の回答を考慮して、
私は推測する
AS
はスタンドアロン(ブロック、サブプログラム、パッケージの外部)エンティティ用です
そして
IS
は、埋め込み(ブロック、サブプログラム、またはパッケージ内)エンティティ用です。
。