2016-09-26 22 views
0

は手順です:ここではSQL Developerを使用してOracleでストアド・プロシージャを作成する簡単な方法は何ですか?ここ

CREATE PROCEDURE show @faculty VARCHAR(20) 
AS 
BEGIN 
    SELECT * 
    FROM tutor 
    WHERE title LIKE @faculty+'%' 
END 

は、プロシージャの実行です:

EXEC show 'FI' 

私はSQL Developerのためにこれを書き換えることができますどのように?オラクルでは

+1

ドロップ@、および連結のためのOracle構文を使用します:

CREATE PROCEDURE show(p_faculty varchar) AS cur SYS_REFCURSOR; BEGIN OPEN cur FOR SELECT * FROM tutor WHERE title LIKE p_faculty || '%'; DBMS_SQL.RETURN_RESULT(cur); END; / 

をその後でそれを実行して'教員のようなタイトルはどこに|| '%' '。 – mathguy

+1

私はあなたがSQL Serverの背景から来ていると仮定します。 Oracleでは、プロシージャは単にこのような 'SELECT'を行うことはできません。プロシージャが何かを呼び出し側に返すようにするには、 'OUT'パラメータが必要です。一般に、Oracleではデータベース状態を変更しないものにはプロシージャーを使用しません。代わりに 'sys_refcursor'を返す関数を書くことができます。あなたの実際のコードに意味のある量のロジックがあれば、代わりにビューを使う方が良いと思います。 –

+1

使用しているOracleのバージョンはどれですか? –

答えて

2

あなたがこれを行うことができます:ちょうど `言うfaculty`、

exec show_x ('FI'); 
関連する問題